Python笔记——读取TIFF文件
目录
1.PIL
from PIL import Image im = Image.open("filename")
支持单通道及多通道Uint8 TIFF图像读取,读取单通道Uint16 TIFF图像转为Uint8处理,直接读取Uint16 TIFF多通道图像出错,错误信息:
2.OpenCV
import cv2 cv2.imread("filename",flags)
对于cv2,imread的关于通道数和位深的flags有四种选择:
IMREAD_UNCHANGED = -1#不进行转化,比如保存为了16位的图片,读取出来仍然为16位。 IMREAD_GRAYSCALE = 0#进行转化为灰度图,比如保存为了16位的图片,读取出来为8位,类型为CV_8UC1。 IMREAD_COLOR = 1#进行转化为RGB三通道图像,图像深度转为8位 IMREAD_ANYDEPTH = 2#保持图像深度不变,进行转化为灰度图。 IMREAD_ANYCOLOR = 4#若图像通道数小于等于3,则保持原通道数不变;若通道数大于3则只取取前三个通道。图像深度转为8位
对于多通道TIFF图像,若要保证图像数据的正常读取,显然要选择IMREAD_UNCHANGED作为imread的flags设置值。
-
#导入cv模块
-
import cv2 as cv
-
import numpy as np
-
#读取图像,支持 bmp、jpg、png、tiff 等常用格式
-
#第二个参数是通道数和位深的参数,有四种选择,参考https://www.cnblogs.com/goushibao/p/6671079.html
-
img = cv.imread(“filename.tif”,2)
-
print img
-
#在这里一开始我写成了img.shape(),报错因为img是一个数组不是一个函数,只有函数才可以加()表示请求执行,
-
print img.shape
-
print img.dtype
-
print img.min()
-
print img.max()
-
#创建窗口并显示图像
-
cv.namedWindow(“Image”)
-
cv.imshow(“Image”,img)
-
cv.waitKey(0)
-
#释放窗口
-
cv.destroyAllWindows()
转载自:https://blog.csdn.net/qq_38906523/article/details/81153310