opencv - 如何找到形状边界的直线近似值?

标签 opencv graphics

这是图片:

enter image description here

我需要找到此图像边界的直线近似值。

最佳答案

  1. 阈值
  2. 找到轮廓
  3. approxPolyDP

#findContours
contours = cv2.findContours(thresh,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)[-2]

canvas = img.copy()

## draw approx contours

for cnt in contours:
    arclen = cv2.arcLength(cnt, True)
    approx = cv2.approxPolyDP(cnt, arclen*0.005, True)
    #drawContours
    cv2.drawContours(canvas, [approx], -1, (0,0,255), 1, cv2.LINE_AA)

cv2.imwrite("result.png", canvas)

enter image description here

关于opencv - 如何找到形状边界的直线近似值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47936718/

相关文章:

actionscript-3 - 使用类似 haar 的功能在 Flash 中进行对象检测

c++ - 数组新长度错误

python - 安装 mediapipe 库后 cv2 不工作

java - opencv pyrDown() 对javacv 的相等方法是什么?

python - 我如何使用opencv实现居中剪切图像

c++ - 玩家移动时,GameBoy Advance对象未显示在正确的位置

使用DiagrammeR以编程方式生成Consort图的R代码?

javascript - 使用 Javascript 和 HTML Canvas 创建类似于 Photoshop 的颜色选择器

c++ - DirectX DXUT 备用 API

C# 库节点边图