• Opencv (Opencv2)结合MFC学习数字图像处理【0】开篇


          写这个系列的文章,主要的动机很简单,就是想找一个在windows下较方便的开发环境,借助于opencv来学习数字图像处理的知识。

          上面那短短一句话中,出现了windows, opencv, 数字图像处理这三个关键词,这就要求我们需要熟悉windows编程,c++, 以及数字图像处理的一些基本原理,对于很多初学者来说,windows编程和C++往往是两大拦路虎,很多人都知道学习数字图像处理一定需要实战,但实战的第一步怎么迈出,该选择哪种学习方案,往往颇为纠结。

    【学习数字图像处理的几种方案 】

     目前有很多学习数字图像处理的方案,总结了一下,大概有如下几种

           1. matlab

           2. python + numpy +scipy+matplotlib

           3. linux + gcc + opencv

           4. windows下vs + opencv + 控制台程序

          其中1是学校里比较主流的方式,优点是不需要懂c语言和c++,只需要专注于相关算法的实现,缺点也很明显,以后想做dev的同学可能就得不到锻炼,对学习软件开发和程序设计没有太多好处。

          python是最近比较流行的学习数字图像的一种选择,和matlab相比最大的优势在于,python是开源的,安装包很小,而且python作为程序语言本身就很优秀,通过python学习数字图像处理,既能掌握数字图像的原理,也能掌握一门实用的编程语言。 

          不过学习python还是稍微有点曲线了(和matlab相比),它不像matlab那样,模块齐全,他需要你像搭积木一样寻找各种python的库,结合使用才能发挥最大作用,而且python的调试可能也没有matlab方便,不习惯编程的同学可能会比较抵制这种方案。

         

          如果要使用c或c++呢?一种方案是在linux下开发,这种方式其实是最简单的,只需要gcc一行命令,编译链接Opencv就完了,如果你想学c++,又不想折腾windows下复杂的visual studio,那么用linux是最好的。

          最后,如果你是一个windows程序员,想借学习数字图像处理这个机会学一学c++和windows编程,那么在windows下就必须要用visual studio了。

    【windows下如何学习数字图像处理】

    1. 使用DIB格式的位图进行处理

        这个是现在市面上流行的“VC和数字图像处理”之类的方案,它有很大的局限性:

        1. 大量使用windows api,比如解析DIB格式的图片, 往往是几十行让人头大的C风格的代码,初学者在接触到数字图像处理的真正内容时,往往会被这种技术细节吓跑。

        2. 有一些和数字图像处理没有太多关系的内容,比如调色板,也会让初学者感到图像格式的复杂。

        3. 只能处理bmp, 对于最流行的jpeg,没有办法处理,更不要说png了

        4. 很多算法只能处理灰度图,对于更为流行的彩色图像一般都当灰度图处理

        5. 过分地炫弄windows界面的一些技巧

    2. 使用opencv 

        这种方案比第一种好不少,至少它可以解码jpeg。但现在市面上这方面的书还比较少 ,而且更多地是在控制台程序下进行了,即便有UI,也是很简单地利用Opencv自带的窗口系统,其实并不是很好,也不太方便。

     3. 在mfc的框架下使用opencv

        这种方案其实是比较灵活的,对于windows程序员来说,不管怎么样,mfc和windows编程还是必须要掌握的技能,在以后的文章中,我会介绍在mfc框架下如何使用opencv。 

  • 相关阅读:
    寄存器(内存访问)知识整理
    寄存器知识点
    汇编语言之实验一
    汇编语言基础知识的总结
    汇编语言之第五章至第八章知识汇总
    汇编实验之第八章数据处理的两个基本问题
    汇编语言之第七章更灵活的定位内存地址的方法
    汇编语言之实验九
    汇编语言之第六章包含多个段的程序
    汇编语言之第五章【BX】和loop指令
  • 原文地址:https://www.cnblogs.com/speedmancs/p/2674206.html
Copyright © 2020-2023  润新知