tutorial_code\ShapeDescriptors\generalContours_demo2.cpp
步骤:
1、灰度化
2、滤波
3、二值化
4、画轮廓 findContours()
5、画最小包围旋转矩形和最小包围椭圆
vector<RotatedRect> minRect( contours.size() );
vector<RotatedRect> minEllipse( contours.size() );
for( size_t i = 0; i < contours.size(); i++ )
{ minRect[i] = minAreaRect( Mat(contours[i]) );
if( contours[i].size() > 5 )
{ minEllipse[i] = fitEllipse( Mat(contours[i]) ); }
}
Mat drawing = Mat::zeros( threshold_output.size(), CV_8UC3 );
Mat drawing1 = Mat::zeros(threshold_output.size(), CV_8UC3);
Mat drawing2 = Mat::zeros(threshold_output.size(), CV_8UC3);
for( size_t i = 0; i< c

这篇博客介绍了如何使用OpenCV进行图像处理,包括将图像转换为灰度、滤波、二值化,然后找到轮廓,并通过findContours函数找出轮廓。重点讲解了如何绘制最小包围旋转矩形和最小包围椭圆,通过fitEllipse和minAreaRect函数实现,并展示了最终的结果图像。
最低0.47元/天 解锁文章
3449

被折叠的 条评论
为什么被折叠?



