前言:
现时大家对“python处理图像裁剪拼接”大体比较关怀,同学们都需要学习一些“python处理图像裁剪拼接”的相关文章。那么小编在网上搜集了一些有关“python处理图像裁剪拼接””的相关文章,希望你们能喜欢,朋友们快快来学习一下吧!这个是苹果系统无法像安卓那要简单方便长截图延伸处理的问题,需要程序自己去拼接。当然也存在两个方案一个是用户自己拼接,一个是程序拼接各有优缺点。
本来想通过opencv去拼接,但是好像难度很大,生成的图片也是类似全景图,要么就融合在一起了。因为这样的报告单照片相似度太高了,检查就是两张照片基本就融合在一起了,后面还是通过裁剪拼接比较简单和方便。
ios拼接图片
用户利用ios app 自己处理电子报告截图,保留正常的电子报告和表头,提供实例图片
优点:前提是用户对软件和手机使用熟练度高。能独立安装苹果软件,能够很好理解操作说明。拼接合格的图片,增加图片识别成功率,需要提供文档操作说明。
缺点:增加用户操作难度,且用户对软件手机操作熟练度不一,拼接图片也存在不合格,浪费精力和api请求
程序拼接
用户上传多张电子报告图片,由后台多图片拼接
处理方法:
a,第二张图片开始固定高度比如200像素,开始裁剪,去掉200像素高度的图片。
b,将第一张和裁剪后的图片按顺序拼接一张长图。
c,最后长图在传入识别api做其他处理
优点:用户无需更多的处理,只需要多次截图 ,多次处理。
缺点:可能会裁剪掉需要的图片数据,一般为一个项目数据。(也可能这数据不需要),缺少的数据项目用户在手动增加。安卓长图的也存在识别项目不出概率。可能存在识别重复数据(第2,3图存在重复项目),数据去重处理
拼接后图
通过测试拼接后的识别效果还是不错的。
图片裁剪代码
# 裁剪图片import cv2def cropImage(img,hstart,hend,widthstart,widthend): """ :param img: 图片路径 :param hstart: 裁剪高度开始像素 :param hend: 裁剪高度结束像素 :param widthstart: 裁剪宽度开始像素 :param widthend: 裁剪宽度结束像素 :return: 图片对象 """ if hend == "": hend =img.shape[0] if widthend == "": widthend = img.shape[1] crop_img = img[hstart:hend, widthstart:widthend] cv2.imshow("Resultcrop", crop_img) cv2.waitKey(0) return crop_img图片拼接
def imagepinjie(image1,image2): image_v = cv2.vconcat([image1, image2]) cv2.imshow("Result", image_v) cv2.imwrite("F:\\pingjie\\r1.jpg", image_v) # 保存拼接后图片if __name__ == '__main__': p1 = readimg("F:\\pingjie\\P1.jpg") p2 = readimg("F:\\pingjie\\P2.jpg") p3 = cropImage(p2,200,"", 0,1080) imagepinjie(p1,p3)
总结下来,这样裁剪处理还是比较简单的、方便、经济。基本这个功能实现路线基本确定可行性了。
标签: #python处理图像裁剪拼接