如何在矩形物体上放置矩形蒙版

时间:2019-01-29 12:52:56

标签: python opencv

我想将占位符对象放入矩形对象中以进行进一步分析。

我找到了标记矩形角的代码,但是对象的角不够“锐利”。

import cv2
import numpy as np

img = cv2.imread('image.png')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
gray = np.float32(gray)

corners = cv2.goodFeaturesToTrack(gray, 100, 0.01, 60)
corners = np.int0(corners)

for corner in corners:
    x, y = corner.ravel()
    cv2.circle(img, (x,y), 3, 255, -1)

cv2.imwrite('Corners.png', img)

enter image description here enter image description here

无法正确检测到拐角。

  1. 有没有办法做到这一点?
  2. 如何将一个(完美的)矩形放入对象中,以便用作占位符?

我想要这样的东西:

enter image description here

1 个答案:

答案 0 :(得分:1)

  1. 找到所有轮廓。
  2. 为每个轮廓找到一个旋转的边界矩形:

    rect = cv2.minAreaRect(cnt)

    box = cv2.cv.BoxPoints(rect)

  3. 减小旋转矩形的宽度和高度,直到(像素总和成rect == width * height)