基于opencv的高通滤波
时间: 2023-07-26 15:48:59 浏览: 144
基于opencv的维纳滤波算法
基于OpenCV的高通滤波算法可以通过cv::filter2D函数实现,其中高通滤波器可以通过生成一个核矩阵来实现。
核矩阵通常采用一个3x3或5x5的正方形矩阵,其中中心点的权值为负数,周围点的权值为正数,整个矩阵的和为0。这样的矩阵可以增强图像的高频分量,使得图像的边缘和细节更加清晰。
下面是一个使用高通滤波器对图像进行处理的示例代码:
```c++
#include <opencv2/opencv.hpp>
int main()
{
cv::Mat image = cv::imread("input.jpg");
cv::Mat kernel = (cv::Mat_<float>(3,3) << -1, -1, -1, -1, 9, -1, -1, -1, -1); // 定义3x3的高通滤波核矩阵
cv::Mat dst;
cv::filter2D(image, dst, -1, kernel); // 对图像进行高通滤波
cv::imshow("Input Image", image);
cv::imshow("Output Image", dst);
cv::waitKey(0);
return 0;
}
```
在这个示例中,我们使用了一个3x3的高通滤波器,将其应用于一张名为"input.jpg"的图像中,并将处理结果显示在屏幕上。
阅读全文