PhotoShop算法实现进阶-模糊滤镜-中值滤波(二十二)
来源:互联网 发布:华资软件 编辑:程序博客网 时间:2024/05/22 17:50
PhotoShop算法实现进阶-模糊滤镜-中值滤波(二十二)
kezunhai@gmail.com
http://blog.csdn.net/kezunhai
中值滤波是一种非线性滤波。中值滤波在一定条件下可以克服线性滤波器如最小均方滤波、均值滤波(BoxFilter)等带来的图像细节的模糊,而且对滤除椒盐灵三点的噪声最为有效。但对于一些细节多,特别是点、线、尖顶细节多的图像不宜采用中值滤波。中值滤波一般采用一个含有奇数个点的滑动窗口,将窗口中各点灰度值的中值来替代指定点的灰度值。对于奇数个元素,中值是值排序后中间的数值;对于偶数则是排数后中间两个元素的平均值。常用的中值滤波窗口有线状、方形、原型、十字型等,本文算法只实现方形的中值滤波,其他形状的中值滤波实现方式相似。
算法实现:
// 中值滤波, kSize:尺寸void PhotoShop::MedianBlur(cv::Mat &img, cv::Mat &dst, int kSize=3){int height = img.rows;int width = img.cols;int chns = img.channels();int border = (kSize-1)/2; // 边界像素不处理int totalNum = kSize*kSize; // 模板大小int iMid = (totalNum-1)/2; // 模板中间值索引号if ( dst.empty())dst.create(height, width, img.type());vector<uchar> ucharVal;int i, j, k, p , q;for ( i =border; i<height-border; i++){unsigned char* dstData = (unsigned char*)dst.data + dst.step*i;for ( j=border; j<width-border; j++){for ( k=0; k<chns; k++){ucharVal.clear();for ( p = -border; p<=border; p++){for ( q = -border; q<=border; q++){ucharVal.push_back(getPixel(img, i+p, j+q, 0));}}sort(ucharVal.begin(), ucharVal.end()); // 排序dstData[j*chns+k] = ucharVal[iMid];//setPixel(dst, i,j, 0, ucharVal[iMid]);}// for k}}}测试效果(kSize=5):
从图中可以看到,图像的对比度有了明显的下降,而且模糊了。
作者:kezunhai 出处:http://blog.csdn.net/kezunhai 欢迎转载或分享,但请务必声明文章出处。
1 0
- PhotoShop算法实现进阶-模糊滤镜-中值滤波(二十二)
- PhotoShop算法实现进阶-模糊滤镜-高斯滤波(二十三)
- PhotoShop算法实现进阶-模糊滤镜-平滑(二十一)
- PhotoShop算法实现进阶-模糊滤镜-运动模糊(二十四)
- PhotoShop算法实现进阶-模糊滤镜-径向模糊(二十五)
- PhotoShop算法实现进阶-锐化滤镜-拉普拉斯锐化(二十六)
- PhotoShop算法实现进阶-锐化滤镜-自由锐化(二十七)
- PhotoShop算法实现进阶-锐化滤镜-钝化蒙版(二十八)
- PhotoShop算法实现进阶-浮雕滤镜-调和浮雕(二十九)
- PhotoShop算法实现进阶-浮雕滤镜-灰度浮雕(三十一)
- PhotoShop算法实现进阶-浮雕滤镜-八方向浮雕(三十)
- MATLAB实现中值滤波算法
- VC++高斯滤波\中值滤波实现图像模糊处理
- PhotoShop算法实现高级篇-剪纸艺术滤镜(三十二)
- 对Photoshop高斯模糊滤镜的算法总结
- 对Photoshop高斯模糊滤镜的算法总结
- 对Photoshop高斯模糊滤镜的算法总结
- 对Photoshop高斯模糊滤镜的算法总结
- 尔雅通识题库系统
- Js apply call
- statfs获得硬盘使用情况
- Ant自动编译部署工具
- android 数据库sqlite 增删改查和数据库事务
- PhotoShop算法实现进阶-模糊滤镜-中值滤波(二十二)
- Struts2导入文件报错
- 看到关于ios block介绍的文章
- 09设置界面的布局和设置界面逻辑的完成
- gdb调试程序步奏
- php ODBC 连接sysbase ASA9数据库
- android design潮流,高仿微信5.2界面实现
- HDU2009
- 【LeetCode】Merge Intervals