第一个过程,从不了解到了解
我一开始是用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)。
图像处理涉及方面不少,不管是理论、实现仍是应用场景,再加上软件、硬件,我也只是接触、了解、实现了很小的一个部分。可是反思这几年的过程,感受仍是有必要小结一下的,这里把本身博客中的一些东西串了一下——每一篇博客的发布都确定是有缘由的,不是随便发布出来的。写博客是总结,也是分享。如今感受博客看的人仍是比较少,感受有里面的一些资源,仍是有本身的思考在里面的,是有必定价值的东西。你们若是有机会,仍是帮忙宣传宣传。有机会也多来踩一踩,增增人气!
最后,放些图,有图有真相嘛~