Причина в том, что каналов всего три, состоит в том, что изображение имеет формат jpg
, в котором нет альфа-канала.Если вы должны были загрузить, например, изображение в формате png
, которое имело альфа-канал, то
img2 = cv.imread( 'lbj.png' , cv.IMREAD_UNCHANGED)
с 'lbj. png ' загрузило бы изображение с включенным альфа-каналом, итогда
img2.shape
покажет (350, 590, 4)
.
Если вы преобразуете jpg
в png
, тогда у вас все равно будет на этом этапе только три канала, потому что изображение будеттолько те каналы BGR
, которые были в исходном jpg
.Однако в этот момент вы можете добавить альфа-канал, чтобы сделать его BGRA
, а затем перейти к работе с параметрами прозрачности.
Ответ на добавление альфа-канала можно получить в python-opencv-add-alpha-канал-RGB-изображение