图像中的形状与分割技术详解
1. 图像中的形状处理
在图像处理中,处理各种形状是一项重要任务,常见的有边界框、圆和凸包等。
1.1 边界框和圆
OpenCV 提供了计算包围一组点的最小面积矩形或圆的函数。矩形可以是直立的(此时它不是包围点集的最小面积矩形)或旋转的(此时它是最小面积矩形)。这些形状有以下两个主要用途:
- 加速计算 :OpenCV 中的许多高级特征检测函数接受直立矩形作为感兴趣区域(ROI),通过指定适当的 ROI,可以让函数忽略图像的其他部分,从而避免在不感兴趣的部分浪费计算资源。
- 推断物体信息 :可以使用这些边界框和圆的属性(如面积、纵横比)来大致推断物体的大小或物体与相机的距离。
OpenCV 提供了以下函数来计算这些形状:
- minAreaRrect() :计算旋转矩形。
- minEnclosingCircle() :计算圆。
- boundingRect() :计算包围一组点的最小直立矩形。
以下是一个修改后的 draw_ellipse() 函数示例,用于显示椭圆的边界圆和矩形:
void ellipseFinder::draw_ellipse(Mat Q) {
vector<Point> ellipse = ellipse_contour(Q);
vecto
图像形状处理与分割技术详解
超级会员免费看
订阅专栏 解锁全文
956

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



