OpenCV показывает неверный или измененный результат при загрузке изображения - PullRequest
1 голос
/ 27 февраля 2020

У меня есть график линии, которая сделана из Photoshop, когда я загружаю изображение, используя opencv в python, используя приведенный ниже код, который дает мне результат 1, который не соответствует реальному изображению,

import cv2
import numpy as np
im = cv2.imread('5.png')
cv2.imshow('image', im)
cv2.waitKey(0)

Result Shown in OpenCV python

Я загружаю изображение в любое средство просмотра изображений, покажите мне его ниже Изображение, которое на самом деле выглядит как.

Actual Image Should look like

1 Ответ

0 голосов
/ 27 февраля 2020

PNG поддерживает 4 канала изображения. Изображение 5.png имеет 4 канала, такие как RGB и Alpha. Альфа-канал - это канал прозрачности, который определяет фон для веб-дизайна. В любом случае, вам нужны только первые 3 канала RGB. Небольшой скрипт ниже будет работать

import cv2

image = cv2.imread('5.png', cv2.IMREAD_UNCHANGED)    #this gives the 4 channel image

mask = image[:,:,3] == 0 #we find all the places where background is transperent

image[mask] = [255, 255, 255, 255]   #we replace that transperent background with white 
                                      #background

BGR = cv2.cvtColor(image, cv2.COLOR_BGRA2BGR)  #convert it to 3 channel

cv2.imshow('BGR',BGR)
cv2.waitKey(0)
...