文章目录
1. 步骤
- 首先将图像变为二值图像threshold()
- 发现轮廓,找到图像轮廓canny()
- 通过相关API在轮廓点上找到最小包含矩形和 圆,旋转矩形与椭圆。
- 绘制它们。rectangle()或circle()
2. 相关API
2.1 approxPolyDP()
- 基于RDP算法实现,目的是减少多边形轮廓点数
2.2 cv::boundingRect()
- 得到轮廓周围最小矩形左上交点坐标和右下角点坐标,用以绘制一个矩形
2.3 cv::minAreaRect()
得到一个旋转的矩形,返回旋转矩形。
2.4 cv::minEnclosingCircle()
- 得到最小区域圆形
2.5 cv::fitEllipse()
- 得到最小椭圆
3. 例程
#include<opencv2/opencv.hpp>
#include<iostream>
#include<math.h>
using namespace cv;
using namespace std;
void CallBack(int, void*);
Mat src,