opencv源码之均值滤波(2)
来源:互联网 发布:上海定制服装淘宝网 编辑:程序博客网 时间:2024/05/19 23:05
由于opencv源码本身关于均值滤波、高斯滤波等都时调用opencv自带的滤波引擎实现,无法看到他到底怎么实现的滤波功能。但我们知道他的滤波原理,接下来我们自己写一个c++代码实现他的滤波功能(本代码可以虽然是均值滤波,但可以通过修改模板,及相应参数实现其他滤波功能,有兴趣的可以自己研究。),由于是3X3的模板效果不是很明显。
#include<iostream>#include<opencv2\opencv.hpp>#include<opencv2\core\core.hpp>//均值模板int TemplateSmoothAvg[9] = { 1, 1, 1, 1, 1, 1, 1, 1, 1 };/****************************************srcImg-输入图像(灰度图像)nTempH-模板的高度nTempW-模板的宽度nTempMY与nTempMX-中心的坐标fCoef-模板系数****************************************/void Template(const cv::Mat srcImg, cv::Mat& resultImg, int nTempH, int nTempW, int nTempMY, int nTempMX, int* fpArray, float fCoef){if (srcImg.empty()){return ;}srcImg.copyTo(resultImg);int i, j;//扫描图像进行模板操作for (i = nTempMY; i < resultImg.rows - (nTempH - nTempMY) + 1; i++){for (j = nTempMX; j <resultImg.cols - (nTempW - nTempMX) + 1; j++){int fResult = 0;for (int k = 0; k < nTempH; k++){for (int l = 0; l < nTempW; l++){fResult += srcImg.at<uchar>(i + k - nTempMY, j + l - nTempMX)*fpArray[k*nTempW + l];}}fResult *= fCoef;if (fResult>255){fResult = 255;}if (fResult <= 0){fResult = 0;}resultImg.at<uchar>(i, j) = fResult;}}}int main(){cv::Mat testImg = cv::imread("test1.jpg");cv::Mat grayImg;cv::cvtColor(testImg, grayImg, CV_BGR2GRAY);cv::imshow("原始图像", grayImg);cv::Mat resultImg;Template(grayImg, resultImg, 3, 3, 1, 1, TemplateSmoothAvg, (float)1 / 9);cv::imshow("my均值滤波", resultImg);cv::waitKey(0);return 0;}原始图像:
均值滤波后:
1 0
- opencv源码之均值滤波(2)
- opencv函数源码之均值滤波(一)
- openCV之中值滤波&均值滤波(及代码实现)
- opencv开发笔记(十):线性滤波之方框滤波、均值滤波、高斯滤波
- opencv学习(十九)之均值滤波blur
- OpenCV图像处理之均值滤波
- 【拜小白opencv】29-平滑处理2线性滤波之——均值滤波
- 我的OpenCV学习笔记(八):空域滤波之均值滤波
- opencv均值滤波
- 【OpenCV入门教程之八】线性邻域滤波专场:方框滤波、均值滤波与高斯滤波
- 【OpenCV入门教程之八】线性邻域滤波专场:方框滤波、均值滤波与高斯滤波
- 【OpenCV入门教程之八】线性邻域滤波专场:方框滤波、均值滤波与高斯滤波
- 【OpenCV入门教程之八】线性邻域滤波专场:方框滤波、均值滤波与高斯滤波
- 【OpenCV入门教程之八】线性邻域滤波专场:方框滤波、均值滤波与高斯滤波
- 【OpenCV入门教程之八】线性邻域滤波专场:方框滤波、均值滤波与高斯滤波
- OpenCV之八 线性邻域滤波专场:方框滤波、均值滤波与高斯滤波
- 【OpenCV入门教程之八】线性邻域滤波专场:方框滤波、均值滤波与高斯滤波
- 【OpenCV入门教程之八】线性邻域滤波专场:方框滤波、均值滤波与高斯滤波
- linux 安装svn服务端
- mysql:sql order by */* desc (查询)
- Buses Between Cities
- Java取一个数组里面第二大的数
- dom4j写文件的编码(UTF-8)问题(主要指中文)的解决
- opencv源码之均值滤波(2)
- 特性训练
- HTTP & RTMP 直播比较
- yuangen
- Hi3515 CRQCV100 NVR折腾记
- Lua 运算符
- 宿主机远程连接虚拟机redis
- 浅析muduo库中的定时器设施
- Python学习笔记——print&列表