2016-05-19 7 views
0

У меня есть изображение Original Image, и я хотел бы найти контур, который заключает в себе коробку. Причина этого заключается в том, что я хотел бы затем обрезать изображение в ограничительную рамку, а затем выполнить дальнейшую обработку изображения на этом обрезанном изображении.Найти контур с наибольшей закрывающей областью с помощью OpenCV (Python)

Я попытался обнаружить канны, но они, похоже, не соединяются, как я хочу. Прикреплено изображение того, как выглядят каменные края. Canny edges

gray = img[:,:,1] 
    blurred = cv2.GaussianBlur(gray, (5, 5), 0) 
    edged = cv2.Canny(blurred, 20, 60) 

Что такое лучший способ найти рамку из исходного изображения?

Большое спасибо.

Дайте мне знать, как я могу сделать этот вопрос более ясным, если это возможно!

ответ

0

Я предполагаю следующее: (если это не так, вы должны указать такие вещи в вашем вопросе) Вы знаете размер коробки Размера всегда тот же Перспективные всегда одинакова коробки всегда полностью в пределах поля fiew ящик не поворачиваются

Используйте несколько строк развертки по всему изображению, чтобы найти переход от черного фона в поле (х и у) Предельно, макс градиента или любая костюмы Ты лучший.

Отбросить выбросы, использовать минимальные и максимальные координаты, чтобы установить ROI фиксированного размера на ваш ящик.

Есть много других способов, чтобы найти центр positon этого фиксированного ROI как

порога, расстояние трансформирует, максимальная

или

порог, поиск блобы, медианы/контур

Вы также можете выполнить согласование контуров.

Я рекомендую вам улучшить вашу настройку, чтобы подсветка фона не превышала границы рамки (слева и справа лучше, чем верх/низ). Тогда все становится легко.

Ваше изображение на грани выглядит ужасно. Проверьте другие методы или улучшите параметры Canny.