Qt打开USB摄像头做形状检测,上次做圆检测。
在上文的基础上,添加一个函数,
void contours(Mat image);
直接上程序:
//形状检测
void MainWindow::contours(Mat image)
{
vector<vector<Point> > contours;
vector<Vec4i> hierarchy;
Mat srcImage=image.clone();
cvtColor(srcImage,srcImage,CV_BGR2GRAY);
blur(srcImage,srcImage,Size(3,3));
Canny(srcImage,srcImage,100,200,3);
findContours(srcImage,contours,hierarchy,CV_RETR_TREE,CV_CHAIN_APPROX_SIMPLE,Point(0,0));
for(int i=0;i<contours.size();i++)
{
Scalar color=Scalar(255,0,0);
drawContours(image,contours,i,color,2,8,hierarchy,0,Point());
}
}
效果图: