OpenCV中的C++类和函数都是定义在命名空间cv之内的,因此可以在头文件中加上usingnamespace cv;这一句,方便编写操作。
#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;
int main()
{
Mat image = imread("C:\\Users\\Lyh\\Desktop\\3.jpg");//使用imread函数从桌面读入一张图片(Mat类似于C中的int,用来定义一个类)
imshow("原图", image);//在"原图"窗口显示出读入的图片
Mat cyimage, cvimage, blimage, eroimage;
blur(image, blimage, Size(5, 5));//用blur函数进行均值滤波操作,操作后的图片存在blimage中
imshow("模糊效果图", blimage);
Mat q = getStructuringElement(MORPH_RECT, Size(10, 10));
//用变量q来存储getStructuringElement函数获得的返回值(返回指定形状和尺寸的结构元素)
erode(image, eroimage, q);//用erode函数进行腐蚀操作,操作后的图片存在eroimage中
imshow("腐蚀效果图", eroimage);
cvtColor(image, cvimage, CV_BGR2GRAY);//用cvtColor函数将原图转换成灰度图像,操作后的图片存在cvimage中
imshow("灰度效果图", cvimage);
blur(cvimage, cyimage, Size(3, 3));
Canny(cyimage, cyimage, 3, 9, 3);//用canny函数进行边缘检测,操作后的图片存在cyimage中
imshow("边缘效果图", cyimage);
waitKey(0);
return 0;
}
编译运行后的原图以及图像处理效果图!