今天是开始学习OpenCV的第一天,简单记录下,运气不错,环境配置一遍过,很舒服。主要使用简单快速上手下
显示图片
/*1.显示图片*/
Mat srcimg = imread("1.png");
imshow("显示图片", srcimg);
waitKey(0);
图片腐蚀
/*2.显示腐蚀图片*/
Mat srcimg = imread("1.png");
imshow("原图腐蚀操作", srcimg);
//进行腐蚀操作
Mat element = getStructuringElement(MORPH_RECT, Size(15, 15));
Mat dstImage;
erode(srcimg, dstImage, element);
imshow("腐蚀操作", dstImage);
waitKey(0);
图片模糊
/*3.图像模糊*/
Mat srcImage = imread("1.png");//载入原始图
imshow("均值滤波[原图]", srcImage);//显示原始图
Mat dstImage;//进行均值滤波操作
blur(srcImage, dstImage, Size(7, 7));
imshow("均值滤波[效果图]", dstImage);//显示效果图
waitKey(0);
canny边缘检测
/*4.canny边缘检测*/
//载入原始图
Mat srcImage = imread("1.png");
imshow("原始图Canny 边缘检测", srcImage);
Mat dstImage, edge, grayImage;//参数定义
//创建与src同类型和大小的矩阵
dstImage.create(srcImage.size(), srcImage.type());
//将原始图像转换为灰度图像
cvtColor(srcImage, grayImage, COLOR_BGR2GRAY);
//先使用3x3内核来降噪
blur(grayImage, edge, Size(3, 3));
//运行Canny算子
Canny(edge, edge, 3, 9, 3);
//显示效果图
imshow("效果图Canny边缘检测", edge);
waitKey(0);
读取并播放视频
//5.读取并播放视频
VideoCapture capture;
capture.open("2.mp4");
while (1)
{
Mat frame;
capture >> frame; //定义一个Mat变量,用于存放每一帧的图像
imshow("读取视频", frame);//显示当前帧
waitKey(30);//延时30ms
}
调用摄像头采集图像
这个没法演示了,没有摄像头,不过和读取视频相差不大,只是把类VideoCapture对象初始化时指定内容的区别,参数为 0 就表示调用摄像头
//6.调用摄像头采集图像
/*调用摄像头采集图像只需要把读入视频的参数设置为0就可以了,表示调用摄像头而不是从文件中读取视频*/
VideoCapture capture;
capture.open(0);
while (1)
{
Mat frame;
capture >> frame; //定义一个Mat变量,用于存放每一帧的图像
imshow("读取视频", frame);//显示当前帧
waitKey(30);//延时30ms
}
到底了...