我试图使用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)
以下是我正在使用的图像的链接:
你能帮我解决这个问题吗?
答案 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()
这是源图像:
将频道拆分为B-G-R-Alpha
:
这是另一个PNG
与alpha:
回复B-G-R-Alpha
个频道: