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;
}
展示一下最后的结果