问题描述
解决方案
不是告诉你算法了么?就是用某个点周围8个点按照第二个矩阵的泉重求平均数,作为滤波后的值。
解决方案二:
打个比方,第二排第二个元素158,滤波以后等于多少呢?
我们看它和它四周的9个元素,是不是
160 163 167
159 158 155
153 155 157
和Mask每一项相乘相加再除以16
等于 (160*1+163*2+167*1+159*2+158*4+155*2+153*1+155*2+157*1)/16
结果是158.3125
所有的元素都这么计算。
解决方案三:
OPENCV cvSmooth(中值滤波、高斯滤波)(2009-12-22 15:21:40)转载▼标签: 杂谈 分类: OPENCV
Smooth
各种方法的图像平滑
void cvSmooth( const CvArr* src, CvArr* dst, int smoothtype=CV_GAUSSIAN, int param1=3, int param2=0, double param3=0 );
src
输入图像.
dst
输出图像.
smoothtype
平滑方法:
CV_BLUR_NO_SCALE (简单不带尺度变换的模糊) - 对每个象素领域 param1×param2 求和。如果邻域大小是变化的,可以事先利用函数 cvIntegral 计算积分图像。
CV_BLUR (simple blur) - 对每个象素邻域 param1×param2 求和并做尺度变换 1/(param1?param2).
CV_GAUSSIAN (gaussian blur) - 对图像进行核大小为 param1×param2 的高斯卷积
CV_MEDIAN (median blur) - 发现邻域 param1×param1 的中值 (i.e. 邻域是方的).
CV_BILATERAL (双滤波) - 应用双向 3x3 滤波,彩色 sigma=param1,空间 sigma=param2. 关于双向滤波,可参考 http://www.dai.ed.ac.uk/CVonline/LOCAL_COPIES/MANDUCHI1/Bilateral_Filtering.html
param1
平滑操作的第一个参数.
解决方案四:
不清楚你看不到题目还是看不懂英文。
1、输入是一个3X16二维数组
2、第二个说明了算法 就是每9个数获取一个值 公式就是第二个数组转换下
3、最后获取到的是一个14个值 就是围绕3X16数组,第二排1~15转换后的值