В чем разница между "image [:,:, 1]" и "cv2.cvtColor (image, cv2.COLOR_BGR2GRAY)"? - PullRequest
0 голосов
/ 03 апреля 2019

Предоставление этого изображения:

Colored pencils

Если мы сделаем image[:, :, 1], мы увидим:

Greyscale one

При выполнении cv2.cvtColor(image, cv2.COLOR_BGR2GRAY):

Greyscale two

Они немного отличаются, но незначительно.

Есть ли какая-либо конкретная причина для использования массива, обращающегося к [:, :, 1] вместо вызова cv2.cvtColor()?

На самом деле, что именно делает [:, :, 1]?Можете ли вы объяснить в двух словах, которые я лучше понимаю?

Моя последняя цель - извлечь текст из некоторых изображений.Должен ли я придерживаться некоторых из двух объясненных методов?Или они должны быть совершенно одинаковыми?

Ответы [ 2 ]

2 голосов
/ 03 апреля 2019

[:, :, 1] - это представление Red Green Blue, так что это просто еще один способ сказать rgb(0, 0, 1). С другой стороны, cv2.cvtColor() также является изменением цветовых пространств, но с параметром cv2.COLOR_BGR2GRAY вместо него фактически используются оттенки серого.

1 голос
/ 03 апреля 2019

Если вы загрузили изображение с помощью OpenCV , image[:,:,0] будет синим каналом, image[:,:,1] будет зеленым каналом, а image[:,:,2] будет красным каналом. Я говорю OpenCV использует BGR порядок.

Если вы открыли изображение с помощью PIL / Pillow или почти любого другого модуля, image[:,:,0] будет красным каналом, image[:,:,1] будет зеленым каналом, а image[:,:,2] будет синим каналом , Я говорю, что остальной мир использует RGB порядок.

Теперь, посмотрите на красный карандаш, он будет ярко-белым в красном канале, потому что в нем много красного. Посмотрите на синий карандаш, он будет ярко-белым в синем канале. Посмотрите на зеленый карандаш, он будет ярко-белым в зеленом канале.

При преобразовании в оттенки серого красный, зеленый и синий каналы смешиваются в определенных процентах, а не выбираются исключительно полностью:

grey = 0.30*R + 0.59*G + 0.11*B

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

...