图一中的错误表明,imread返回值img是None
imread的第一个参数,即使传入的是一个无效的文件名,它也不会抛出错误,而是返回一个None.
第一个参数的赋值是this.dir = os.path.join(dir + ...)
这种写法并不好,一般来说,应该是写成
this.dir = os.path.join(dir , filename)
并且,你应当在这之后检查一下这个文件是否存在:
if not os.path.isfile(this.dir):
....raise FileNotFoundError(this.dir)
然后才可以交给imread()去读取
import os
n=1
for x in os.listdir(r'e:/tif'): #文件夹路径自己改
if x[-3:]=='tif':
os.renames(x,str(n)+'.tif')
n+=1
用python读取TIFF文件,可采用以下代码framedim = [2048,2048]
nb_elem = framedim[0]*framedim[1]
offset = 4096
formatdata = np.uint16
f = open(path, 'rb')
f.seek(offset)#TODO: only header size for tiff !!
d = np.fromfile(f, dtype=formatdata, count=nb_elem).reshape(framedim)
写入TIFF文件,则需要pylibtiff库
例如
from libtiff import TIFF
tif = TIFF.open(path, 'w')
tif.write_image(image)
image为二维ndarray