我正在使用此代码来检测矩形的四个角,但是由于像素波,我得到了下面的输出,这意味着我得到了很多点,我怎么只能得到四个角(topRight,topLeft,bottomRight,bottomLeft)而没有所有像素波?
注意我正在将opencv与python一起使用
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
low_red1 = np.array([0,70,25])
high_red1 = np.array([10,255,255])
low_red2 = np.array([160,70,25])
high_red2 = np.array([180,255,255])
mask0 = cv2.inRange(hsv, low_red1, high_red1)
mask1 = cv2.inRange(hsv, low_red2, high_red2)
mask = mask0+mask1
cv2.imshow("mask", mask)
contours,_ = cv2.findContours(mask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(img, contours, -1, (0,200,0),1)
for c in contours:
approx = cv2.approxPolyDP(c, 0.009 * cv2.arcLength(c, True), True)
cv2.drawContours(img, [approx], 0, (255, 0, 0), 1)
n = approx.ravel()
k = 0
for j in n :
if(k % 2 == 0):
x = n[k]
y = n[k + 1]
cv2.circle(img, (x,y), 3, (255, 0, 0), -1)
k = k+1
cv2.imshow("corners", img)
the output
最佳答案
除非Rectagle与u
和v
轴完全对齐(可以检查),否则拐角始终是max()
或min()
坐标上的各个u
和v
值。
关于python - 我怎样才能只得到旋转矩形的四个角?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62454734/