python利用plt读取tiff图像(多个页面)_iamge.open python tif_Li_Yurun的博客-CSDN博客
学习以上blog
首先执行seek 再读取数据
from paddleocr import PaddleOCR, draw_ocr
import paddle
import paddleocr
import time
from PIL import Image
import numpy as np
import os
# paddleocr.DEFAULT_OCR_MODEL_VERSION = 'PP-OCRv4'
if __name__ == '__main__':
# paddle.device.set_device("gpu:1")
# print(paddle.device.get_device())
#os.environ['CUDA_VISIBLE_DEVICES']='1'
ocr = PaddleOCR(use_angle_cls=True, lang="ch",ocr_version="PP-OCRv4",gpu_id=1)
img = Image.open('00000001.tif').convert('RGB')
img2 = Image.open('00000001.tif')
nframesNum = img2.n_frames
print(nframesNum)
for i in range(nframesNum):
print(i)
start = time.time()
# result = ocr.ocr(np.array(img), cls=True)
img2.seek(i)
result = ocr.ocr(np.array(img2.convert('RGB')))
end = time.time()
print('time:', (end-start))
for line in result:
print(line)
保存时处理方式:通过save函数中的save_all =1 保存所有的页
img = Image.open(img_file)
print(img.n_frames)
img.save("test.tif",save_all=1)
多页数据中某一页清除成白色,需要通过imglist先中转数据,再保存,通过append_images 字段保存数据
from paddleocr import PaddleOCR, draw_ocr
import paddleocr
import time
import img2pdf
from PIL import Image
import numpy as np
save_pdf_file = 'output.pdf'
paddleocr.DEFAULT_OCR_MODEL_VERSION = 'PP-OCR'
if __name__ == '__main__':
# ocr = PaddleOCR(use_angle_cls=True, lang="ch",ocr_version="PP-OCRv3",device='cuda:0')
img = Image.open('00000001.tif') #.convert('RGB')
print(img.n_frames)
nFramesNum = img.n_frames
imglist=[]
for i in range(nFramesNum):
start = time.time()
# result = ocr.ocr(np.array(img), cls=True)
img.seek(i)
tmpimg = np.array(img.convert('RGB'))
if i == 1:
tmpimg[:,:,0:3]=255
img2 = Image.fromarray(tmpimg)
imglist.append(img2)
# result = ocr.ocr(np.array(img.convert('RGB')))
print(img.info)
end = time.time()
print('time:', (end-start))
with open(save_pdf_file, "wb") as f:
# convert函数 用来转PDF
img3 = imglist.pop(0)
img3.save("test.tif",save_all=True,append_images=imglist)
write_content = img2pdf.convert("test.tif")
f.write(write_content) # 写入文件
print("转换成功!") # 提示语
# for line in result:
# print(line)