图像处理之原理

一 中值滤波概念

中值滤波算法以某像素的领域图像区域中的像素值的排序为基础,将像素领域内灰度的中值代替该像素的值[1];

如:以3*3的领域为例求中值滤波中像素5的值

 

                  图1

1)int pixel[9]中存储像素1,像素2...像素9的值;

2)对数组pixel[9]进行排序操作;

3)像素5的值即为数组pixel[9]的中值pixel[4]

    中值滤波对处理椒盐噪声非常有效。

二 中值滤波代码实现

百度云地址

以下为MedianFilter文件中class MyImage中的中值滤波功能的实现代码:

 1 //中值滤波:本算法采用3*3的领域范围
 2 void MyImage::MedianFilterOper()
 3 {
 4     //0. 准备:获取图片的宽,高和像素信息,
 5     int const num = 3 * 3;
 6     unsigned char pixel[num] = { 0 }; //保存领域的像素值
 7     int width = m_bmpInfo.biWidth; //位图的宽度
 8     int height = m_bmpInfo.biHeight; //位图的高度
 9     int widthbyte = (width * m_bmpInfo.biBitCount / 8 + 3) / 4 * 4;
10     //相对于中心点,3*3领域中的点需要偏移的位置
11     int delta[3 * 3][2] = {
12         { -1, -1 }, { -1, 0 }, { -1, 1 }, { 0, -1 }, { 0, 0 }, { 0, 1 }, { 1, -1 }, { 1, 0 }, {1, 1}
13     };
14     
15     //1. 中值滤波
16     for (int i = 1; i < height-1; ++i)
17     {
18         for (int j = 1; j < widthbyte-1; ++j)
19         {
20             //1.1 提取领域值
21             for (int k = 0; k < num; ++k)
22             {
23                 pixel[k] = m_imagedata[(i + delta[k][0])*widthbyte + j + delta[k][1]];
24             }
25             //1.2 排序:利用快排函数
26             qsort(pixel, num, sizeof(unsigned char), compa);
27             //1.3 获取该中心点的值
28             m_imagedata[i*widthbyte + j] = pixel[num / 2];
29         }
30     }
31 }
View Code

三 程序运行效果及总结

    执行MedianFilter\可执行文件\MedianFilter.exe文件,MedianFilter\可执行文件\Image文件夹下将根据初始图片init.bmp生成中值滤波后的图片result.bmp,对比如下:

 

              图2:init.bmp                                    图3:result.bmp

总结:因为可能对图片格式的理解仍然不到位,程序的执行效果虽然去除了大部分的噪声,但并未完全去除,还需要优化。

四 参考文献

[1] 冈萨雷斯等数字图像处理(第三版)[M].电子工业出版社,2011:96

[2] 宋亮等浅谈图像处理与BMP图像文件格式.[EB/OL].

http://wenku.baidu.com/link?url=8rmY9e-j_9n1zlgrrm_ptZRZw_BoZp754gNwgPoCiqmGPQ0iNU7nPGPIp4_7PfVncSDohLlVFChKGlsneYJUzrS7L70JdDZpkVS12A_bEO3, 2014

[3] 江南烟雨. C++读取、旋转和保存bmp图像文件编程实现[EB/OL].

http://blog.csdn.net/xiajun07061225/article/details/6633938, 2011

备注:MedianFilter文件夹中的“读取图片”和“保存图片”的代码参考[2][3]

 

原文地址:https://www.cnblogs.com/tanfy/p/median_filter.html