【发布时间】:2017-07-02 03:47:12
【问题描述】:
我正在尝试在 Python 中读取 16 位 TIFF 图像 (26446 x 16688)。使用 OpenCV 仅读取黑色图像(所有强度读取为 0):
self.img = cv2.imread(self.filename, cv2.IMREAD_UNCHANGED)
openCV 可以处理 16 位或大图像 (~840mb) 吗?有什么解决方法吗?
编辑:另外
cv2.imshow("output", self.img[0:600])
显示黑色图像。
【问题讨论】:
-
只是一个提示...尝试运行 InageMagick 的
identify命令来检查 TIFF 中的最小/最大/平均/目录数。它安装在大多数 Linux 上。你想要identify -verbose YourImage.tif -
我有较小的 16 位 tiff 文件,它们工作正常(它们甚至在
imshow中正确显示,尽管可能被截断为 8 位 -34067, 34983, 35287]], dtype=uint16)- 这就是我的图像结束的方式( 137, 137, 137 在没有cv2.IMREAD_UNCHANGED的情况下加载)。可能您正在加载黑色图片,或者实际范围不完全是 16 位(例如 12 位,移位 8 位产生大部分为零)。要么是大小图像,或者它工作正常 - 尝试将图像乘以 2 的幂,或在显示之前对其进行归一化(拉伸对比度)。或者前 600 行是黑色的......
标签: python image opencv numpy tiff