C++写一个图像处理算法
以下是一个简单的图像处理算法示例,用C++实现:
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
// 读取图像
Mat image = imread("image.jpg", IMREAD_COLOR);
// 如果图像为空,读取失败
if (image.empty())
{
std::cout << "Could not open or find the image" << std::endl;
return -1;
}
// 转换为灰度图像
Mat grayImage;
cvtColor(image, grayImage, COLOR_BGR2GRAY);
// 对灰度图像进行高斯模糊
Mat blurredImage;
GaussianBlur(grayImage, blurredImage, Size(5, 5), 0);
// 对模糊图像进行Canny边缘检测
Mat edges;
Canny(blurredImage, edges, 50, 150);
// 显示原始图像和处理后的图像
namedWindow("Original Image", WINDOW_AUTOSIZE);
imshow("Original Image", image);
namedWindow("Processed Image", WINDOW_AUTOSIZE);
imshow("Processed Image", edges);
waitKey(0);
return 0;
}
这个例子使用OpenCV库来读取图像,然后将图像转换为灰度图像。接下来,对灰度图像进行高斯模糊处理,然后使用Canny边缘检测算法找到图像的边缘。最后,使用OpenCV的图像显示功能来显示原始图像和处理后的图像。
请注意,你需要安装OpenCV库,并将图像文件命名为"image.jpg",放在与源代码相同的目录下,才能运行这个示例
原文地址: http://www.cveoy.top/t/topic/hHK4 著作权归作者所有。请勿转载和采集!