C++OpenCV进行轮廓提取及计算图像的面积周长

        在很多时候我们需要对一些形状进行识别,其中包括对形状的区分、对图像的提取、对面积和周长的计算等等,这时我们可以利用opencv进行运用从而实现目的。

案例1主要流程:


基于硬核求解原则,咱们用最现成的方法、最简单的思路对问题进行求解。

老规矩先来波预操作:先给咱们的图来滤个波、二值化然后再进行形态学操作,然后我们就能得到一个清晰的二值图了

得到二值图像后咱们就要把他的轮廓提取出来,这里主要是利用finfContours()函数找出图形轮廓,找出各个轮廓后用drawContours()函数绘出轮廓,注意在这里要加入一个轮廓大小判断是否等于窗口面积,否则会将窗口识别成矩形绘出。

接下来先检测出圆形,这里可以利用一个常见的霍夫圆检测函数来检测圆形,利用获得的圆心和半径可以确定圆的位置和大小,从而绘出。

然后对矩形和三角形进行多边拟合操作,利用approxPolyDP()函数
对图像轮廓点进行多边形拟合,对于拟合的结果我们可以进行一个简单的筛选,以便于筛掉过小的拟合矩形。三角形以及其他多边形的拟合操作都与矩形类似。

根据拟合结果我们就能得到各个图形的顶点和边长,从而我们就能利用line()函数将不同的几何形状用不同的颜色描绘出来。
同时我们也可以通过contourArea()函数和arcLength()函数计算出各个图形的面积与周长。

代码实现

#include<opencv2/opencv.hpp>
#include<iostream>
#include<
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI炮灰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值