使用OpenCV2读取图像会给出满是零的矩阵?

时间:2018-01-02 07:38:52

标签: python opencv

我试图使用OpenCV库在Python中读取图像作为矩阵,但是当我读取图像和图像时将其显示为矩阵,它显示满零的矩阵。

我相信有一些错误,因为Image中包含一些内容。 下面是我的代码(Python3):

import numpy as np
np.set_printoptions(threshold=np.inf)
import cv2
img = cv2.imread("truck_icon.png",0)
print(img)
以下是我正在使用的图像的链接:
Image

你能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

您的图片为PNG,带有Alpha通道。因此,如果您只是使用标记0(即cv2.IMREAD_GRAYSCALE)阅读,那么您的结果可能会与预期结果不同。

更好的方法是使用PNG标志读取cv2.IMREAD_UNCHANGED(包含alpha通道)。然后计算区域值(可能是运行正常)。

img = cv2.imread("truck_icon.png", cv2.IMREAD_UNCHANGED)
b,g,r,a = cv2.split(img)
cv2.imshow("B", b)
cv2.imshow("G", g)
cv2.imshow("R", r)
cv2.imshow("A", a)
cv2.waitKey()

这是源图像:

enter image description here

将频道拆分为B-G-R-Alpha

enter image description here

这是另一个PNG与alpha:

enter image description here

回复B-G-R-Alpha个频道:

enter image description here