#include<opencv2/imgproc/imgproc.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/core/core.hpp>
#include<iostream>
using namespace std;
using namespace cv;
//图像掩码的实现
Mat Myfilter2D(Mat& src)
{
int channels = src.channels();
Mat result(src.size(),src.type());
for (int j = 1; j < src.rows - 1; j++)
{
uchar* previous = src.ptr<uchar>(j-1);
uchar* current = src.ptr<uchar>(j);
uchar* next = src.ptr<uchar>(j+1);
uchar* output = result.ptr<uchar>(j);
for (int i = channels; i < channels*(src.cols - 1); i++)
{
*output++ = saturate_cast<uchar>((current[i - channels] + current[i + channels] + previous[i] + next[i]) / 4);
}
}
//边界处理
result.row(0).setTo(Scalar(0));
result.row(result.rows - 1).setTo(Scalar(0));
result.col(0).setTo(Scalar(0));
result.col(result.cols - 1).setTo(Scal
opencv掩码操作-滤波
最新推荐文章于 2024-07-24 14:19:40 发布
本文深入探讨了OpenCV库在图像处理中如何使用掩码进行滤波操作。通过实例,详细介绍了如何创建掩码并应用于高斯模糊、中值滤波等常见滤波器,以实现对特定图像区域的精确处理。掩码滤波在图像分割、对象检测等领域具有广泛应用。
摘要由CSDN通过智能技术生成