Рассчитать соотношение черных пикселей

По изображению я хочу рассчитать как можно точнее:

  • Общее соотношение черного к белому
  • На каких горизонтальных линиях больше всего черных пикселей. я хочу верхние 3 строчки.
  • На каких вертикальных линиях больше всего черных пикселей. я хочу верхние 3 строчки.
  • Каково соотношение черного к белому для каждой из трех верхних горизонтальных линий.
  • Каково соотношение черного к белому для каждой из трех верхних вертикальных линий.

Пример изображений:  введите описание изображения здесь


person mr M    schedule 29.06.2020    source источник


Ответы (2)


В opencv вы можете использовать Count non Zero для подсчета количество черных пикселей. Зная общее количество пикселей, вы легко найдете соотношение.

Для количества пикселей в области я бы рекомендовал использовать ту же функцию, что и выше, но для определенной области (ROI).

Я бы использовал порог раньше, чтобы быть точным. Порог

person mprostak    schedule 29.06.2020

Используйте любую систему строчного сканирования, которую вы собираетесь использовать, чтобы получить количество белых пикселей и общее количество пикселей (а также черного, если вы сканируете изображение с большим количеством цветов). Вы можете сохранить каждую строку как объект или кортеж или что-то еще, а затем добавить каждую в список. Отсортируйте список по черным пикселям, и вы легко найдете тройку лучших.

Повторите создание списка строк.

Соотношение - это простое деление, выполняемое по каждой из трех верхних строк. Возможно, вы даже можете сохранить его как собственность.

@property
def ratio_of_black_to_white(self):
  return self.black_px / self.white_px
person Brenton H    schedule 29.06.2020