我是靠谱客的博主 成就大侠,最近开发中收集的这篇文章主要介绍opencv 多边形近似物体形状,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

前面我们学习过最小外接矩和最小外接圆,那么可以用一个最小的多边形包围物体吗?当然可以:
其中 cv.approxPolyDP() 的参数1是源图像的某个轮廓;参数2(epsilon)是一个距离值,表示多边形的轮廓接近实际轮廓的程度,值越小,越精确;参数3表示是否闭合。

import cv2 as cv
import numpy as np

# 多边形逼近
# 1.先找到轮廓
img = cv.imread('unregular.jpg', 0)
_, thresh = cv.threshold(img, 0, 255, cv.THRESH_BINARY + cv.THRESH_OTSU)
contours, hierarchy = cv.findContours(thresh, 3, 2)
cnt = contours[0]

# 2.进行多边形逼近,得到多边形的角点
approx1 = cv.approxPolyDP(cnt, 3, True)
approx2 = cv.approxPolyDP(cnt, 15, True)
approx3 = cv.approxPolyDP(cnt, 75, True)

# 3.画出多边形
image = cv.cvtColor(img, cv.COLOR_GRAY2BGR)
cv.polylines(image, [approx1], True, (255, 0, 0), 2)
cv.polylines(image, [approx2], True, (0, 255, 0), 2)
cv.polylines(image, [approx3], True, (0, 0, 255), 2)

print(len(approx1),len(approx2),len(approx3))  # 角点的个数
cv.imshow('approxPloyDP', image)
cv.waitKey(0)
cv.destroyAllWindows()

实验用图
实验绘制图像输出
实验控制台输出
可以看到,cv.approxPolyDP 函数 参数2(epsilon)越小,得到的多边形角点越多,对原图像的多边形近似效果越好。

最后

以上就是成就大侠为你收集整理的opencv 多边形近似物体形状的全部内容,希望文章能够帮你解决opencv 多边形近似物体形状所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部