用c++ opencv实现读取图像DSC_5101.jpg,将图像转化为灰度图并显示->去除背景(所有像素灰度值-10)并显示->进行高斯滤波并显示。
时间: 2024-03-23 19:36:18 浏览: 69
好的,以下是C++ OpenCV代码实现:
```c++
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
// 读取图像并显示
Mat img = imread("DSC_5101.jpg");
imshow("Original Image", img);
waitKey(0);
// 转化为灰度图并显示
Mat gray_img;
cvtColor(img, gray_img, COLOR_BGR2GRAY);
imshow("Gray Image", gray_img);
waitKey(0);
// 去除背景并显示
Mat bg_removed_img = gray_img - 10;
imshow("Background Removed Image", bg_removed_img);
waitKey(0);
// 进行高斯滤波并显示
Mat gaussian_blur_img;
GaussianBlur(bg_removed_img, gaussian_blur_img, Size(5, 5), 0);
imshow("Gaussian Blur Image", gaussian_blur_img);
waitKey(0);
// 关闭所有窗口
destroyAllWindows();
return 0;
}
```
执行该代码后,会先显示原始图像,按下任意键后会显示灰度图像,再按下任意键后会显示去除背景后的图像,最后按下任意键后会显示经过高斯滤波后的图像。
阅读全文