Обнаружение угла в сложном изображении

Я хотел бы найти фиксированную точку на картинках, как показано выше для последующего сравнения, и я подумал о том, чтобы взять верхний левый угол доски. Я попробовал кое-что, но результат показан зеленой точкой. Я хотел бы найти способ взять эту точку в углу доски, а не выше. Я также хочу, чтобы эта точка зрения была одинаковой на снимках одной доски, но, возможно, с некоторым изменением ориентации. Я использую Python 2.7

код, который я пробовал до сих пор:

gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
blurred = cv2.GaussianBlur(gray, (3, 3), 0)
edged = cv2.Canny(blurred, 10, 200)
edged = cv2.dilate(edged, None, iterations=6)
edged = cv2.erode(edged, None, iterations=6)
(contourss, _) = cv2.findContours(edged.copy(), cv2.RETR_EXTERNAL,
                        cv2.CHAIN_APPROX_SIMPLE)
contourss = sorted(contourss, key=cv2.contourArea, reverse=True)[:10]
cv2.drawContours(image, contourss[0], -1, (0, 255, 0), 2)

rect1 = cv2.minAreaRect(contourss[0])
box1 = cv2.cv.BoxPoints(rect1)
box1 = np.int0(box1)
topleftPer=[]
for i in box1[1]:
    topleftPer.append(i)
pt = (topleftPer[0], topleftPer[1])
cv2.circle(image, pt, 5, (0, 255, 0), -1)

1 ответ

Всегда удивительно видеть, как люди хотят полагаться на обнаружение краев. Обнаружение краев так ненадежно!

Это изображение легко преобразовать в двоичную форму. Найдите черный пиксель с наименьшим значением x+y и поместите небольшую область интереса вокруг этого пикселя. Затем используйте самые левые и самые верхние координаты.

Другие вопросы по тегам