閱讀《OpenCV計算機視覺程式設計攻略》是一種怎樣的體驗
嚴格意義上講,初次見到機器視覺的產品是在北京參加Connect 2016大會的時候。在主會場外有一些展臺,無意間我看到一個關於機器視覺的產品,當時只是記下了這個詞,也沒怎麼太在意。
真正引起我注意的是一個有趣的分享,分享的嘉賓來自“格靈深瞳”。記得當時分享的主題就是圍繞機器視覺展開的,印象比較深刻的一是神奇的攝像頭可以判定一輛車在馬上是否違章;二是在北京三環行駛的無人駕駛車。這些好玩的訊息讓自己更加越發的喜歡搗鼓和硬體相關的物件,也讓我對機器視覺產生了興趣。
很難得,在社群找到了一本《OpenCV計算機視覺程式設計攻略》。這本書使用的C++進行程式設計,非常適合對機器視覺感興趣的開發者用來學習。
一、閱讀的正確姿勢
- 準備一臺不是很不靠譜的電腦(什麼系統不重要)
- 準備好無限的耐心(可能安裝開發環境的時候會遇到坑)
- 最好有一些C++基礎知識的儲備(這點對於閱讀本書很重要)
- 最好能理解中文(無聊)
二、關於開發環境的安裝
因為自己使用的是win10系統的電腦,所以IDE選擇的是微軟的Visual Studio 2017。OpenCV版本選擇的是3.3。當然,您可以按照自己的喜好,選擇合適的IDE和OpenCV的版本。
三、OpenCV是什麼?
OpenCV是一個開源的跨平臺的計算機視覺庫。可以執行在Linux、Windows和Mac OS作業系統上。提供支援多種語言的API(幾種常用的語言)。
四、技能回收站
全書共計11章節,去除第一章基礎介紹,實際重點章節有10章,大約280頁,內容也很簡單,所以閱讀起來基本上很順暢。不過書中還會涉及到一些涉及模式和演算法,先透露一些。
- 策略模式 、控制器設計模式
- 均值平移演算法、分水嶺演算法、MSER演算法、GrabCut演算法
初篇主要講解的都是一些基礎知識,比如:裝載、顯示和儲存影像;Mat的使用及定義興趣區域。這些是知識都是開啟OpenCV挑戰之前需要掌握的。
當大腦中有了一些基礎的概念之後,繼續學習操作畫素就變得有趣些。其實影像本質上就是一個由數值組成的矩陣,而矩陣中的每個元素表示一個畫素。在OpenCV中可以通過Mat操作影像。繞了一圈其實就是想說,第一章內容不能跳過(*^__^*) 嘻嘻。其次是說,本書知識結構層層遞進,內容銜接合理。
在操作畫素的章節裡有個關於“椒鹽噪聲”的Demo很好玩,就是隨機選擇一些畫素,把它們的顏色替換成白色或者黑色。在實驗的過程中,我選擇了將畫素顏色替換成了白色,最後的圖片上出現了類似雪花一樣的效果。如下圖:
效果二:
效果三:
閱讀完操作畫素、用類處理彩色影像、用直方圖統計畫素、用形態學運算變換影像、影像濾波、提取直線、輪廓和區域、檢測興趣點、描述和匹配興趣點、估算影像之間的投影關係、處理視訊序列這些內容之後,覺得《OpenCV計算機視覺程式設計攻略》真的是一本有趣有料的書。在現實生活場景中應用到了很多書中講的知識。
就全書而言,這本書中涉及的程式碼篇幅倒不是很多。雖然是一本程式設計類的技術書籍,但是書每一行程式碼都是不可或缺的。書中梳理的概念和實現原理是全書的特色,一掃自己對圖形處理的盲區。美中不足的是目前就在社群發現了這麼一本書。
接下來想用樹莓派和OpenCV做點簡單的好玩的事情。
相關文章
- OpenCV計算機視覺程式設計攻略(第2版)程式碼OpenCV計算機視覺程式設計
- 做大廠程式設計師是一種怎樣的體驗?程式設計師
- 在遊戲中設計動物是怎樣一種體驗?遊戲
- 30歲轉行做初級程式設計師是一種怎樣的體驗?程式設計師
- 在小公司程式設計是一種什麼樣的體驗?程式設計
- 程式設計師是這樣閱讀簡歷的程式設計師
- 讀《計算機是怎樣跑起來的》收穫計算機
- 和真正的程式設計師在一起是怎樣的體驗程式設計師
- 在國企做程式設計師是怎樣的體驗?程式設計師
- 什麼是生成模型和GAN?一文體驗計算機視覺的魔力(附連結)模型計算機視覺
- 計算機是怎樣跑起來的計算機
- 在騰訊工作是一種怎樣的體驗?
- 我是如何閱讀程式設計書的程式設計
- 30歲轉行做初級程式設計師是一種什麼樣的體驗?程式設計師
- 《程式是怎樣跑起來的》,計算機程式很複雜嗎?計算機
- 軟體設計是怎樣煉成的(8)——使用者感覺好才是真的好(使用者體驗設計)
- 徒手一千行以上程式碼是怎樣一種體驗?
- 視覺設計師是怎樣讓前端工程師 100% 實現設計效果的?視覺前端工程師
- 一文讀懂計算機視覺中的深度域適應計算機視覺
- 閱讀計算機圖書的一些心得計算機
- 10年後的計算機會是怎樣的?計算機
- 計算機視覺論文集計算機視覺
- iOS計算機視覺—ARKitiOS計算機視覺
- 計算機視覺隨談計算機視覺
- opencv——機器視覺檢測和計數OpenCV視覺
- 在阿里安全工作是一種怎樣的體驗阿里
- 你的程式設計師是一種什麼樣的怪物?程式設計師
- 【計算機視覺】利用GAN Prior來處理各種視覺任務計算機視覺
- 同時拿到BATJMD的Offer是怎樣的一種體驗?BAT
- 我是怎樣走上程式設計之路的程式設計
- 【閱讀】資料之美,一本書學會視覺化設計視覺化
- 程式設計師到底是一種什麼樣的存在?程式設計師
- 計算機課程程式設計經驗分享計算機程式設計
- 我是如何學習計算機程式設計的計算機程式設計
- 和程式設計師談戀愛,是什麼樣的體驗程式設計師
- 計算機視覺入門系列(一) 綜述計算機視覺
- 計算機視覺環境配置計算機視覺
- OpenVINO計算機視覺模型加速計算機視覺模型