使用opencv的visual studio语言完成图像滤波
时间: 2023-12-17 17:04:24 浏览: 32
以下是使用OpenCV和Visual Studio编写的图像滤波示例代码:
```c++
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
Mat img = imread("lena.jpg", IMREAD_GRAYSCALE); // 读取灰度图像
if (img.empty()) // 判断是否读取成功
{
cout << "Could not open or find the image" << endl;
return -1;
}
namedWindow("Original Image", WINDOW_NORMAL); // 创建窗口
imshow("Original Image", img); // 显示原始图像
Mat blur_img;
blur(img, blur_img, Size(5, 5)); // 图像模糊
namedWindow("Blurred Image", WINDOW_NORMAL); // 创建窗口
imshow("Blurred Image", blur_img); // 显示模糊图像
Mat sharpen_kernel = (Mat_<float>(3, 3) <<
-1, -1, -1,
-1, 9, -1,
-1, -1, -1); // 锐化卷积核
Mat sharpen_img;
filter2D(img, sharpen_img, -1, sharpen_kernel); // 图像锐化
namedWindow("Sharpened Image", WINDOW_NORMAL); // 创建窗口
imshow("Sharpened Image", sharpen_img); // 显示锐化图像
waitKey(0); // 等待按键
return 0;
}
```
这段代码首先读取名为“lena.jpg”的灰度图像,并在窗口中显示原始图像。然后,使用OpenCV中的“blur”函数对图像进行模糊处理,并在另一个窗口中显示模糊图像。接下来,使用自定义的锐化卷积核和OpenCV中的“filter2D”函数对图像进行锐化,并在第三个窗口中显示锐化图像。最后,代码等待用户按下任意键,然后退出程序。