OpenCV源碼解析

OpenCV K-means源碼解析html

OpenCV 圖片讀取源碼解析c++

OpenCV 視頻播放源碼解析算法

OpenCV 追蹤算法源碼解析數據結構

OpenCV SIFT算法源碼解析源碼分析

OpenCV 濾波源碼分析:bilareralFilter性能

OpenCV 數字識別解析spa

只撿須要的讀.net

 

讀懂OpenCV源碼須要哪些基礎?

通讀過C++ Primer,目前C++屬於入門級, 數字圖像處理基礎也有。目前看不懂OpenCV源碼,請問還須要哪些基礎, 從哪些方面入手源碼比較好呢?謝謝
回答:
半年前實習的時候,在那個公司參與用OpenCV c++版本的開發公司本身的CV庫。
體會還比較深,如今回想起來,大概會有這麼一些建議:

1. C++須要多瞭解一下,建議看看Bjarne大神的書

OpenCV的C++版本是從新寫過了的。
和之前的C版本是不一樣的了。
和圖書館裏常見的那本learn OpenCV 已經不一樣了。

而對於C++來講,頭文件裏的interface和註釋其實就是文檔了。
若是單從一個學圖像處理,和作實現的人來講,我以爲這就夠了。

可是,即便要看頭文件無障礙,也須要花不少功夫:
大約就是Bjarne的書裏不斷強調的 interface 和 implementation如何隔離。
而openCV c++ 裏面還用到了不少 範型 (templates).
由於圖像處理的應用對性能比較敏感,不可能像常見的應用同樣,能夠容許class之間複雜的繼承關係,而後在運行的時候,再去查找virtual function table。
它們須要在編譯的時候,就把這種搜索完成,因而須要 compile-time polymorphism。

2. 從 OpenCV 的文檔開始

我以爲不要從源代碼開始,而應該從官方的文檔開始。
官方的文檔介紹了不少它的設計思路,尤爲是 C++版本的基本數據結構很重要。

3. 若是想要了解某個特徵或者處理的具體實現,源代碼不是最好的途徑

我記得當時實習時要用到了某個特徵。
實際上就原來來說是很是簡單的。
可是,當你真的去看源代碼的時候,那就不容易了。
那是根據一片後來的文章實現的線性複雜度的算法。
我我的是屬於算法與數據結構功底較差的,因此,當時看源代碼對我來講反而更加吃了和無從下手。

實際上,網上的,尤爲是國外的公開課教程是很棒的。

祝好。https://www.zhihu.com/question/28880447
相關文章
相關標籤/搜索