Как я могу извлечь экран мобильного телефона из изображения, где также есть другие прямоугольные angular объекты? - PullRequest
0 голосов
/ 26 апреля 2020

Я хочу извлечь экран мобильного устройства из изображения, где мобильный не самый большой прямоугольник. Мобильный телефон размещен на столе, или мобильное изображение видно на экране ноутбука. Поэтому я не могу использовать самый большой алгоритм обнаружения контуров. Если вы можете помочь, пожалуйста, дайте мне знать. Заранее спасибо.

Здесь я добавляю образец изображения: Образец изображения

1 Ответ

0 голосов
/ 26 апреля 2020

Существуют различные подходы, которые вы можете использовать:

  1. Вероятно, наиболее многообещающим методом будет обучение модели глубокого обучения с использованием данных вашего костюма. Взгляните на эту статью.

  2. Вы можете добавить некоторые другие фильтры перед поиском прямоугольников. Например, если экран телефона выключен, вы можете использовать цветной фильтр HSV для черных объектов. Я хотел бы сделать что-то вроде этого:

blur = cv2.blur(img,(5,5))
hsv = cv2.cvtColor(blur, cv2.COLOR_BGR2HSV)

# Play with these values. They are the HSV lower and upper bounds:
lower_black = np.array([0, 5, 50], np.uint8) 
upper_black = np.array([179, 50, 255], np.uint8)

mask = cv2.inRange(hsv, lower_black, upper_black)
# mask = cv2.Canny(mask, 60, 120) - optional
img_res = cv2.bitwise_and(img, img, mask=mask)

(np относится к numpy).

Теперь попробуйте выполнить определение контура на img_res , Обратите внимание, что значения нижнего и верхнего предела HSV должны быть точно настроены для достижения наилучших результатов.

  • Если обнаружение контуров не работает на отфильтрованном изображении, попробуйте применить функцию обнаружения края Canny на mask, как указано в коде.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...