初探OpenCV

VS2017配置OpenCV搞了好久好久,烦人。。。

可以参考这个https://www.zhihu.com/question/24400428省的多次配置。

#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>
using namespace cv;
int main()
{
	Mat srcImage = imread("cat.jpg");

	//腐蚀操作
	//imshow("[原图]腐蚀操作", srcImage);
	////进行腐蚀操作
	//Mat element = getStructuringElement(MORPH_RECT, Size(15, 15));
	//Mat dstImage;
	//erode(srcImage, dstImage, element);
	////显示效果图
	//imshow("[效果图]腐蚀操作", dstImage);

	////模糊操作
	//imshow("[原图]均值滤波", srcImage);
	//Mat dstImage;
	//blur(srcImage, dstImage, Size(7, 7));//均值滤波
	//imshow("均值滤波[效果图]", dstImage);

	//边缘检测
	//imshow("[原图]Canny边缘检测", srcImage);
	//Mat dstImage, edge, grayImage;
	////创建于src同大小类型的矩阵
	//dstImage.create(srcImage.size(), srcImage.type());
	//cvtColor(srcImage, grayImage, COLOR_BGR2GRAY);
	//blur(grayImage, edge, Size(3, 3));//模糊操作
	//Canny(edge, edge, 3, 9, 3);
	//imshow("[效果图]边缘检测", edge);

	//播放视频
	VideoCapture capture(0);//参数为文件则播放文件,为0则调用摄像头采集
	Mat edges;
	while (1)
	{
		Mat frame;
		capture >> frame;

		//原图转换为灰度图像
		cvtColor(frame, edges, CV_BGR2GRAY);
		//3*3降噪
		blur(edges, edges, Size(7, 7));
		//边缘检测
		Canny(edges, edges, 0, 30, 3);
		imshow("处理后的视频", edges);
		if (waitKey(30) >= 0)
			break;

		/*imshow("读取视频", frame);
		waitKey(30);*/
	}
	waitKey(0);
	return 0;
}

展示一下最后的结果


猜你喜欢

转载自blog.csdn.net/qq_36718317/article/details/80084262