第一個過程,從不瞭解到了解
我一開始是用csharp的,並且剛開始作圖像處理用的是halcon。halcon的官方自帶的例程不少,百十來個吧,我當時一個一個跑着玩,感受頗有意思;而後就想辦法融合到csharp中去。csharp不是寫界面快嘛,加上halcon的函數效果,就可以獲得完整的程序。而後我開始修改這些例程,實際上,我一開始使用halcon來作圖像拼接,而且實現了出來http://www.cnblogs.com/jsxyhelu/p/3390598.html。可是halcon的版權的呀,還有和界面的交互的問題也多,苦惱時看到一本書,叫作《學習OpenCV2》,聽老師傅說這個很厲害,翻了一翻——徹底看不懂呀!
第二個過程,抄襲,造成本身的東西
版權是硬傷呀,沒有辦法只能學習OpenCV,一開始不是看《學習OpenCV2》,而是其餘書。我採用的方法是在噹噹、china-pub中搜索opencv這個關鍵字,而後找到全部已經翻譯成中文的opencv方面的書,而後再亞馬遜上面搜索opencv,再找到那些尚未翻譯的原版。基本上,OpenCV相關的書英文的我都有,比較重要的有中文的。書拿到了,我認爲比較高效的方法就是——快速過一遍,有了基礎;而後跑裏面的例子,增長感性的認識;而後再根據須要重構,反覆反覆。這個過程當中,也生成本身的專用函數GOCVhelper(位github開源,簡介http://www.cnblogs.com/jsxyhelu/p/5904251.html)爲了使用OpenCV,從頭學習mfc,雖然如今c++發展很迅速了,windows這塊仍是mfc支持的比較好;偶爾看到於世琪的dshow對mfc的支持,感受這個太好了,屢次封裝成爲了GOMFCTemplate2(位github開源,簡介http://www.cnblogs.com/jsxyhelu/p/GOMFCTemplate2.html),成爲一個比較完整的庫了,也發給於世琪看了,他說很好!還幫在微博上推了一下。
固然,這些模型的推進,都是有實際項目拉動的。首先實現項目,而後從項目中將模型精良出來,方便下次使用。我基本上採用這個模式吧。
這樣,csharp經過clr調用opencv , GreenOpenPaint實現多圖像處理,再加上GOMFCTemplate2實現實時視頻處理。那麼對於桌面來講,基本夠用了。下一步就是手機端和webapi了,這些已經思考到了,在研究。
第三個過程,算法原創
作到這個過程,還只是使用OpenCV作項目。可是隨着項目的深刻,不少時候客戶的要求,不是有現成的算法的,也不是經過現有算法進行拼接可以解決的。怎麼辦?只能本身去研究,有一些問題是有論文的,也可能有書,運氣比較好還有matlab代碼;也會遇到了太少見了,論文也比較少。這個時候,須要的能力,仍是最基本的英語和數學。可以快速閱讀獲得本身要的東西,可是每每一篇重要的的論文也得讀個十幾、幾十遍吧,數學這塊,我主要從線性代數開始,包括作《learningOpenCV3》課後習題的時候,只要涉及到數學問題,都想辦法給解決掉,推導出來!而不是跳過去。由於我已經認識到,數學對於靈感呀、思惟呀綜合能力的影響很重要;可以把一個定理,好比pca中svd分解給推導一個例題出來,再使用這個函數,那感受絕對不同的(《學習OpenCV3》第7章第4題-SVD奇異值分解的驗算http://www.cnblogs.com/jsxyhelu/p/7029283.html)。
圖像處理涉及方面不少,不管是理論、實現仍是應用場景,再加上軟件、硬件,我也只是接觸、瞭解、實現了很小的一個部分。可是反思這幾年的過程,感受仍是有必要小結一下的,這裏把本身博客中的一些東西串了一下——每一篇博客的發佈都確定是有緣由的,不是隨便發佈出來的。寫博客是總結,也是分享。如今感受博客看的人仍是比較少,感受有裏面的一些資源,仍是有本身的思考在裏面的,是有必定價值的東西。你們若是有機會,仍是幫忙宣傳宣傳。有機會也多來踩一踩,增增人氣!
最後,放些圖,有圖有真相嘛~