继续学习。
之前说到各种关于图像的操作,到现在为止我们可以把图像的轮廓简单的显示出来,今天要解决的是如何根据轮廓绘制矩形框和圆形框。
首先需要一个预处理。对于此绘制算法来说,如果轮廓是一个多边形,那么多边形边数越多,画起来就越难。为了解决这个问题,需要引入一个新的API。OpenCV中使用RDP算法实现减小多边形边数且尽量令其大小不变。
1 | approxPolyDP( |
然后就是绘制各种形状 。
1 | cv::boundingRect(InputArray points) |
做法是这样的
- 首先将图像转换为二值图像
- 发现轮廓,找到图像轮廓
- 通过相关API在轮廓点上找到最小包含矩形和圆,旋转矩形和椭圆
- 绘制它们
项目中只需要绘制矩形,我就只用绘制矩形部分的吧。
1 |
|