数字图像处理(6):设计数字图像处理GUI界面(C语言,未用opencv)
设计一个集成各种图像处理算法的软件(前几次作业已经实现的算法、功能)
一、平台
使用平台:VS2015+MFC
语言:C语言
VS: Microsoft Visual Studio(简称VS)是美国微软公司的开发工具包系列产品。VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。所写的目标代码适用于微软支持的所有平台,包括Microsoft
Windows、Windows Mobile、Windows
CE、.NET Framework、.NET Compact
Framework和Microsoft Silverlight 及Windows Phone。
MFC: 微软基础类库(英语:Microsoft Foundation Classes,简称MFC)是微软公司提供的一个类库(class libraries),以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。
界面如下:
二、实现功能
1、打开图片文件
点击“打开”按钮,即可选择图片文件进行打开并在左侧窗口显示出来。
目前只支持.bmp格式的图片。
2、图像取反
点击“图像取反”按钮,可对原图进行取反操作。
3、直方图均衡化
(注:这一步的操作是有问题的,彩色直方图均衡化不应该对RGB三通道分别操作,关于这一问题以后会说到,这里就不多说了)
4、幂次变换
输入v*10的值,点击幂次变换按钮实现幂次变换。
三、遇到问题
MFC读取的是bmp格式文件,最开始调试时想看一下读取的数据对不对,就把数据输出看了一下,结果如上,左是原图,右是输出的图。可以看到不仅左右上下翻转了,图像颜色也变了。
关于翻转,是因为bmp格式读取图像顺序的原因,这个老师讲过。
关于颜色也变化就于点好奇,,,上网查了一下,原来bmp格式不是RGB格式而是BGR这个顺序。
不过还挺好看的:)
反思:
这周的作业,前段时间一直在纠结用MFC还是QT,最后先学会了MFC便用了MFC。写的代码架构不太好,有点乱。
附代码:
代码有点长,还是之后有时间上传到github吧,到时候会在这里更新地址