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设置值。

  1. #导入cv模块

  2. import cv2 as cv

  3. import numpy as np

  4. #读取图像,支持 bmp、jpg、png、tiff 等常用格式

  5. #第二个参数是通道数和位深的参数,有四种选择,参考https://www.cnblogs.com/goushibao/p/6671079.html

  6. img = cv.imread("filename.tif",2)

  7. print img

  8. #在这里一开始我写成了img.shape(),报错因为img是一个数组不是一个函数,只有函数才可以加()表示请求执行,

  9. #参考http://blog.csdn.net/a19990412/article/details/78283742

  10. print img.shape

  11. print img.dtype

  12. print img.min()

  13. print img.max()

  14. #创建窗口并显示图像

  15. cv.namedWindow("Image")

  16. cv.imshow("Image",img)

  17. cv.waitKey(0)

  18. #释放窗口

  19. cv.destroyAllWindows()

猜你喜欢

转载自blog.csdn.net/qq_38906523/article/details/81153310