【发布时间】:2021-02-23 16:30:24
【问题描述】:
我有一张黑白图像,正在加载到 python 中。如果我使用枕头或 cv2,对于创建的 NumPy 数组的维度,我会得到两个不同的答案。我知道通道排序(RGB 与 BGR)与 openCV 和枕头不同,但我不认为这就是这里发生的事情
我的图像是 2 维的,因为枕头代表它。这是否意味着 openCV 会将值复制到 3D 数组中?
import cv2
from PIL import Image
import numpy as np
path = 'path/to/file.png'
#using pillow
img = Image.open(path)
img.size #(500,500)
img.mode # L
arr = np.array(img)
arr.shape #(500,500)
#using cv2
image = cv2.imread(path)
image.shape #(500,500,3)
如果我在 bash 终端中运行 file
$ file 'path/to/image.png'
path/to/image: PNG image data, 500 x 500, 8-bit grayscale, non-interlaced
【问题讨论】:
-
//在做什么?他们应该是 cmets 吗? -
抱歉,已修复。一时间忘记了我用的是哪种语言。 cmets 显示该行的结果是什么
-
使用 imread(..., cv2.IMREAD_UNCHANGED)
-
mode "L" 相当于灰度,所以一个通道,cv2.imread("pathimage", cv2.IMREAD_GRAYSCALE) 相当于
标签: python numpy opencv python-imaging-library