Python 各种读取保存tif,tiff,png,jpg,mat等格式图像方法大集合

利用opencv读取tif 文件

#导入cv模块
import cv2 as cv
import numpy as np
#读取图像,支持 bmp、jpg、png、tiff 等常用格式
#第二个参数是通道数和位深的参数,有四种选择
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()

对于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

PIL读取图像

from PIL import Image
im = Image.open("filename")

支持单通道及多通道Uint8 TIFF图像读取,读取单通道Uint16 TIFF图像转为Uint8处理,直接读取Uint16 TIFF图像会报错。

LIBTIFF包读取保存图像

from libtiff import TIFF
# to open a tiff file for reading:

tif = TIFF.open('filename.tif', mode='r')
# to read an image in the currect TIFF directory and return it as numpy array:

image = tif.read_image()
# to read all images in a TIFF file:

for image in tif.iter_images(): # do stuff with image
# to open a tiff file for writing:

tif = TIFF.open('filename.tif', mode='w')
# to write a image to tiff file

tif.write_image(image)

scikit包读取保存图像

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
from skimage import io
img = io.imread('testimg.tif')
import numpy as np
data=np.random.random([100,100])
io.imsave('rand_data.tif',np.float32(data))

imageio包读取保存图像

import imageio
im = imageio.imread('imageio:chelsea.png')  # read a standard image
im.shape  # im is a numpy array (300, 451, 3)
imageio.imwrite('~/chelsea-gray.jpg', im[:, :, 0])

misc包读取保存图像

from scipy import misc

# 读入已有图像,数据类型和原图像一致
tif32 = misc.imread('.\test\lena32.tif') #<class 'numpy.float32'="">
tif16 = misc.imread('.\test\lena16.tif') #<class 'numpy.uint16'="">
tif8 = misc.imread('.\test\lena8.tif') #<class 'numpy.uint8'="">

#保存图像
misc.imsave('.\test\lena32_scipy.tif', tif32) #--> 8bit(tif16和tif8同)
misc.imsave('.\test\\randmat64_scipy.tif', flt) #--> 8bit
misc.imsave('.\test\\randmat8_scipy.tif', z8) #--> 8bit(z16和z32同)
  • 5
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,以下是用Python读取TIF格式图片的示例代码: ``` python import numpy as np import matplotlib.pyplot as plt from PIL import Image # 读取TIF格式图片 img = Image.open('example.tif') # 将图片转换为NumPy数组 img_arr = np.array(img) # 显示图片 plt.imshow(img_arr) plt.show() ``` 这里使用了Pillow库来读取TIF格式图片,并使用Matplotlib库显示图片。读取后的图片被转换为NumPy数组,以便进行后续的处理。 ### 回答2: 使用Python读取tif格式图像可以使用PIL库(Python Imaging Library)或者OpenCV库。下面以PIL库为例,介绍读取tif图像的步骤。 首先,需要安装PIL库。可以通过以下命令在终端或命令提示符中安装: ``` pip install pillow ``` 接下来,导入PIL库并打开tif图像文件: ```python from PIL import Image image = Image.open('image.tif') ``` 然后,可以对图像进行一些操作,如获取图像大小、分辨率等: ```python width, height = image.size resolution = image.info['dpi'] ``` 如果需要显示图像,可以使用show()方法: ```python image.show() ``` 另外,还可以将图像保存为其他格式,如JPEG、PNG等: ```python image.save('image.jpg', 'JPEG') ``` 最后,需要关闭图像文件: ```python image.close() ``` 通过以上步骤,就可以使用Python读取和处理tif格式图像了。 ### 回答3: 要使用Python读取.tif格式图像,可以使用PIL库(Python Imaging Library)或OpenCV库中的相关函数。 首先,如果未安装PIL库,则需要在终端中运行以下命令进行安装: ``` pip install pillow ``` 然后,可以使用以下代码示例读取.tif图像: ```python from PIL import Image # 打开.tif图像 image = Image.open('image.tif') # 显示图像的宽度和高度 width, height = image.size print('图像宽度:', width) print('图像高度:', height) # 将图像转换为灰度图 gray_image = image.convert('L') # 显示灰度图 gray_image.show() # 保存灰度图 gray_image.save('gray_image.tif') # 关闭图像 image.close() ``` 上述代码首先导入Image模块,然后使用`Image.open()`函数打开.tif图像,并获取图像的宽度和高度。接下来,通过调用`convert()`函数并传入参数'L',将图像转换为灰度图,并使用`show()`函数显示灰度图。然后,使用`save()`函数保存灰度图为.tif格式。最后,使用`close()`函数关闭图像。 这样,我们就可以使用Python读取.tif格式图像了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值