Чтобы немного объяснить вопрос. У меня есть изображение, которое уже содержит белую ограничивающую рамку, как показано здесь:
Входное изображение
Мне нужно обрезать часть изображения, окруженную ограничительной рамкой.
FindContours здесь не работает, поэтому я попробовал что-то, используя следующий код:
import cv2
import numpy as np
bounding_box_image = cv2.imread('PedestrianRectangles/1/grim.pgm')
edges = cv2.Canny(bounding_box_image, 50, 100) # apertureSize=3
cv2.imshow('edge', edges)
cv2.waitKey(0)
lines = cv2.HoughLinesP(edges, rho=0.5, theta=1 * np.pi / 180,
threshold=100, minLineLength=100, maxLineGap=50)
# print(len(lines))
for i in lines:
for x1, y1, x2, y2 in i:
# print(x1, y1, x2, y2)
cv2.line(bounding_box_image, (x1, y1), (x2, y2), (0, 255, 0), 2)
cv2.imwrite('houghlines5.jpg', bounding_box_image)
безуспешно. Игра с параметрами также не сильно помогла. Результат моего фрагмента кода показан на следующем изображении:
выход
У меня была идея сделать обрезку после обнаружения линии и т. Д.
Я относительно новичок в opencv, поэтому помощь будет принята с благодарностью. Есть ли хороший или простой подход к этой проблеме, который мне не хватает? Поиск в Google не помог, поэтому любые ссылки, фрагменты кода были бы полезны.