基于MFC和OpenCV的图像处理小软件(续)

本文介绍了一个基于MFC和OpenCV的小软件,新增了多种图像处理功能,包括恢复原图、灰度直方图、颜色直方图、金字塔分割、Candy边缘检测和轮廓检测。直方图用于分析图像灰度或颜色分布,金字塔分割用于图像处理,Canny边缘检测用于精确定位边缘,轮廓检测则帮助识别图像中的形状。这些功能旨在满足图像处理的需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

新添加功能(直方图的滚动条拖动有点多余,因为已经有两种二值化分割了,分水岭的算法比较复杂,已经超出你的所学范围了,所以选取了稍微简单的金字塔分割,又增添了3中图像处理方法,应该可以满足你们老师的要求了:)):

1.恢复原图

   点击“图像处理”子菜单下面的“恢复原图”即可恢复到刚打开图像时的状态。

2.灰度直方图

灰度直方图(histogram)是灰度级的函数,它表示图象中具有每种灰度级的象素的个数,反映图象中每种灰度出现的频率。灰度直方图的横坐标是灰度级,纵坐标是该灰度级出现的频率,是图象的最基本的统计特征。

 

3.颜色直方图

直方图中的数值都是统计而来,描述了该图像中关于颜色的数量特征,可以反映图像颜色的统计分布和基本色调;直方图只包含了该图像中某一颜色值出现的频数,而丢失了某象素所在的空间位置信息;任一幅图像都能唯一的给出一幅与它对应的直方图,但不同的图像可能有相同的颜色分布,从而就具有相同的直方图,因此直方图与图像是一对多的关系;如将图像划分为若干个子区域,所有子区域的直方图之和等于全图直方图;一般情况下,由于图像上的背景和前景物体颜色分布明显不同,从而在直方图上会出现双峰特性,但背景和前景颜色较为接近的图像不具有这个特性。


4.金字塔分割

金字塔分割算法由cvPrySegmentation所实现,该函数的使用很简单;需要注意的是图像的尺寸以及金字塔的层数,图像的宽度和高度必须能被2整除,能够被2整除的次数决定了金字塔的最大层数。

金字塔算法处理后:


金字塔算法处理前:

 

金字塔算法处理后:


5.Candy边缘提取

(1)   图象边缘检测必须满足两个条件:一能有效地抑制噪声;二必须尽量精确确定边缘的位置。

(2)   根据对信噪比与定位乘积进行测度,得到最优化逼近算子。这就是Canny边缘检测算子。

(3)   类似与Marr(LoG)边缘检测方法,也属于先平滑后求导数的方法。


6.轮廓检测

可以参考如下网页:

http://www.360doc.com/content/10/1029/22/10610_65126310.shtml

本程序中的效果如下(先二值化图像,在轮廓提取):


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值