我正在尝试获取图像框的角落。以下是示例图像,它们的阈值结果,在箭头右侧的是我需要的结果。你可能以前也在Slack上看到过这些图像,因为我在Slack上使用这些图像作为我的示例问题。
以下是允许我到达中间图像的代码。
import cv2
import numpy as np
img_file = 'C:/Users/box.jpg'
img = cv2.imread(img_file, cv2.IMREAD_COLOR)
img = cv2.blur(img, (5, 5))
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
h, s, v = cv2.split(hsv)
thresh0 = cv2.adaptiveThreshold(s, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY_INV, 11, 2)
thresh1 = cv2.adaptiveThreshold(v, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY_INV, 11, 2)
thresh2 = cv2.adaptiveThreshold(v, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY_INV, 11, 2)
thresh = cv2.bitwise_or(thresh0, thresh1)
cv2.imshow('Image-thresh0', thresh0)
cv2.waitKey(0)
cv2.imshow('Image-thresh1', thresh1)
cv2.waitKey(0)
cv2.imshow('Image-thresh2', thresh2)
cv2.waitKey(0)
在opencv中有没有可以帮我做到这一点的方法?我尝试过膨胀cv2.dilate()
和腐蚀cv2.erode()
,但在我的情况下它不起作用。如果没有其他方法,那么还有哪些替代方法可以做到这一点呢?谢谢。图像的Canny版本...左边是低阈值,右边是高阈值。
![enter image description here](https://istack.dev59.com/b4msn.webp)