使用Python中的cv2读取pgm图像

10
我想在Python中读取pgm图像。我尝试使用cv2.imread('a.pgm')但是它返回错误的结果。在Matlab中,我使用imread并且得到一个正确的结果,这是一个16位的单通道图像。但是在Python中,cv2.imread返回一个3通道图像,而且像素值也不正确。为什么会发生这种情况?我应该如何读取16位的pgm图像?有哪些库可以使用?
提前感谢。

OpenCV支持PGM图像。请分享您的代码/输出/结果/错误。 - Billal Begueradj
这个答案可能会有帮助,它只使用了Numpy。需要注意的是,一些程序使用本机字节顺序而不是大端字节顺序,但看起来这个答案的代码已经处理了这个问题。 - PM 2Ring
1
尝试使用Python的等效方式:imread("path_to_image", IMREAD_UNCHANGED)。你的图像应该与Matlab一样,只是可能存在比例因素上的差异。 - Miki
2个回答

10

我明白了。

cv2.imread('a.pgm',-1) 

工作。


1

你也可以使用skimage.io库

from skimage.io import imread
image = imread("a.pgm")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接