【发布时间】:2016-07-25 02:28:57
【问题描述】:
我想在 python 中读取 pgm 图像。我使用 cv2.imread('a.pgm') 但它返回错误的结果。在 Matlab 中,我使用 imread 并获得正确的结果,即单通道 16 位图像。但是python中的cv2.imread返回的是3通道图像,像素值也是错误的。 为什么会发生? 我应该如何在 python 中读取 16 位 pgm 图像? 还有哪些库?
提前致谢。
【问题讨论】:
-
OpenCV supports PGM images。请分享您的代码/输出/结果/错误。
-
仅使用 Numpy 的 This answer 可能会有所帮助。请注意,某些程序使用本机字节序而不是大字节序,但看起来答案的代码可以处理。
-
尝试使用与此等效的python:
imread("path_to_image", IMREAD_UNCHANGED)。您的图像应该与 matlab 相同,但最终会因比例因子而有所不同。