C++ OpenCV是一种广泛使用的图像处理库,它提供了多种基本的图像处理方式,主要包括以下几种:
基本的图像处理方式
图像读取
在OpenCV中,使用cv::imread函数可以读取图像,该函数接受两个参数:文件名和读取标志。例如,以下代码读取名为“lena.jpg”的图像并将其显示在窗口中:
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
Mat img = imread("lena.jpg", IMREAD_COLOR);
imshow("Image", img);
waitKey();
return 0;
}
图像缩放
图像缩放是图像处理中的一项常见任务,可以使用cv::resize函数轻松实现。该函数接受三个参数:源图像、输出图像大小和插值方法。例如,以下代码将图像缩放为原图的一半:
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
Mat img = imread("lena.jpg", IMREAD_COLOR);
Mat img_resized;
resize(img, img_resized, cv::Size(img.cols/2, img.rows/2));
imshow("Resized Image", img_resized);
waitKey();
return 0;
}
图像滤波
图像滤波是对图像进行平滑或增强的常见操作,可以使用各种滤波器实现。在OpenCV中,可以使用cv::blur函数进行均值滤波,该函数接受两个参数:输入图像和卷积核大小。例如,以下代码对图像执行均值滤波:
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
Mat img = imread("lena.jpg", IMREAD_COLOR);
Mat img_filtered;
blur(img, img_filtered, cv::Size(9, 9));
imshow("Filtered Image", img_filtered);
waitKey();
return 0;
}
示例
以下是两个示例,演示了如何在OpenCV中实现常见的图像处理操作:
灰度图像处理
将彩色图像转换为灰度图像是图像处理中的一项基本任务,可以使用cv::cvtColor函数实现。该函数接受两个参数:输入图像和希望得到的输出图像类型。以下代码显示了如何将RGB图像转换为灰度图像:
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
Mat img = imread("lena.jpg", IMREAD_COLOR);
Mat img_gray;
cvtColor(img, img_gray, COLOR_RGB2GRAY);
imshow("Grayscale Image", img_gray);
waitKey();
return 0;
}
边缘检测
边缘检测是图像处理中的一个常见任务,可以使用cv::Canny函数轻松实现。该函数接受三个参数:输入图像、输出图像和两个阈值。以下代码显示了如何在图像中检测边缘:
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
Mat img = imread("lena.jpg", IMREAD_COLOR);
Mat img_edges;
Canny(img, img_edges, 100, 200);
imshow("Canny Edges", img_edges);
waitKey();
return 0;
}
以上就是C++ OpenCV中几种基本的图像处理方式的完整攻略,希望对您有帮助!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++ OpenCV中几种基本的图像处理方式 - Python技术站