数字图像处理(6):设计数字图像处理GUI界面(C语言,未用opencv)

文章目录

  • 一、平台
  • 二、实现功能
    • 1、打开图片文件
    • 2、图像取反
    • 3、直方图均衡化
    • 4、幂次变换
  • 三、遇到问题
  • 反思:
  • 附代码:

设计一个集成各种图像处理算法的软件(前几次作业已经实现的算法、功能)

一、平台

使用平台: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的内建控件和组件的封装类。

界面如下:
数字图像处理(6):设计数字图像处理GUI界面(C语言,未用opencv)_第1张图片
数字图像处理(6):设计数字图像处理GUI界面(C语言,未用opencv)_第2张图片

二、实现功能

1、打开图片文件

数字图像处理(6):设计数字图像处理GUI界面(C语言,未用opencv)_第3张图片

点击“打开”按钮,即可选择图片文件进行打开并在左侧窗口显示出来。

目前只支持.bmp格式的图片。

2、图像取反

数字图像处理(6):设计数字图像处理GUI界面(C语言,未用opencv)_第4张图片

点击“图像取反”按钮,可对原图进行取反操作。

3、直方图均衡化

数字图像处理(6):设计数字图像处理GUI界面(C语言,未用opencv)_第5张图片
(注:这一步的操作是有问题的,彩色直方图均衡化不应该对RGB三通道分别操作,关于这一问题以后会说到,这里就不多说了)

4、幂次变换

数字图像处理(6):设计数字图像处理GUI界面(C语言,未用opencv)_第6张图片

输入v*10的值,点击幂次变换按钮实现幂次变换。

三、遇到问题

数字图像处理(6):设计数字图像处理GUI界面(C语言,未用opencv)_第7张图片

MFC读取的是bmp格式文件,最开始调试时想看一下读取的数据对不对,就把数据输出看了一下,结果如上,左是原图,右是输出的图。可以看到不仅左右上下翻转了,图像颜色也变了。

关于翻转,是因为bmp格式读取图像顺序的原因,这个老师讲过。

关于颜色也变化就于点好奇,,,上网查了一下,原来bmp格式不是RGB格式而是BGR这个顺序。

不过还挺好看的:)

反思:

这周的作业,前段时间一直在纠结用MFC还是QT,最后先学会了MFC便用了MFC。写的代码架构不太好,有点乱。

附代码:

代码有点长,还是之后有时间上传到github吧,到时候会在这里更新地址

你可能感兴趣的:(数字图像处理)