1. 程式人生 > >OpenCV學習筆記(五十八)——讀《Master OpenCV》初感

OpenCV學習筆記(五十八)——讀《Master OpenCV》初感

好久沒更新這個系列了。去年12月初的時候就知道出了一本OpenCV的新書《Master OpenCV with Practical Computer Vision Projects》,一直沒來得及看,春節前也不想做什麼任務,就把這書讀一讀吧。大概看了一下,和OpenCV的其他書對比了一下,感覺如下:

《Learning OpenCV》是一本經典的老書了,是一個入門教材,讀完可以知道OpenCV能做些什麼,但裡面的具體程式碼個人覺得還是有點out,但好處就是中文資料很全,網上可以找到很多參考資料。

《OpenCV Cookbook》是我以前推薦過的一本書,是基於2.2版本寫的。我的感覺是一本上手教材,書的目的是讓大家知道應該如何去呼叫OpenCV的函式,如何用OpenCV的類去實現簡單的視覺任務。需要一定的C++基礎。

《Master OpenCV》感覺更像是一個上層建築,是基於2.4版本寫的。是教會大家如何用OpenCV去實現複雜的任務,去完成OpenCV自帶函式沒有提供的功能。(因為大家經常會因為“OpenCV裡面有xxx的函式麼?”的否定答案而苦惱,這本書就是告訴大家OpenCV只是個工具,如何去駕馭這個工具進行二次開發是要動腦的)

這本《Master OpenCV》書第一章沒有很複雜的東西。

第一章就是介紹了一個邊緣檢測、膚色檢測、一個填充演算法,並把這個功能移植到android平臺,邊緣檢測和填充演算法都是OpenCV自帶的函式功能。這裡隨便說說讀完第一章的幾點收穫:

1、具體任務要具體分析。這裡因為要做到嵌入式平臺中,演算法的複雜度被放在了首位,所以雙邊濾波做了簡化、填充演算法也只是在原圖的縮小1/2的圖上進行的計算。膚色檢測也沒有先用經典的人臉檢測演算法,而是用了一種土鱉的方案,都是為了在嵌入式平臺上能執行的高效。這種處理問題的方法值得借鑑學習

2、面向物件程式設計的思想。這章裡也提到了顯示FPS,只是人家是在一個類中實現,再對比自己之前寫的OpenCV學習筆記(三十八)——顯示當前FPS,高下自分。實在是自慚形愧啊~~。

3、貌似把自己的c++工程移植到android平臺並不需要改寫自己的程式碼,只要做個JNI function作為介面就可以呼叫c++的程式了,感覺有點像Matlab中的mex。android下的OpenCV開發基本不懂,這裡就不亂講了。

這幾天抓緊把這書讀完,把後幾章的閱讀筆記也寫出來分享一下。希望大家多多指正交流