时间:2021-05-22
在工作中。在做数据集时,需要对图片进行处理,照相的图片我们只需要特定的部分,所以就想到裁剪一种所需的部分。当然若是图片有规律可循则使用opencv对其进行膨胀腐蚀等操作。这样更精准一些。
一、指定图像位置的裁剪处理
二、批量处理—指定图像位置的裁剪
我这个是用来截取发票的印章区域,用于图像分割(公司的数据集保密)
各位可以用自己的增值发票裁剪。适当的更改截取区域
"""处理数据集 和 标签数据集的代码:(主要是对原始数据集裁剪) 处理方式:分别处理 注意修改 输入 输出目录 和 生成的文件名 output_dir = "./label_temp" input_dir = "./label""""import cv2import osimport sysimport timedef get_img(input_dir): img_paths = [] for (path,dirname,filenames) in os.walk(input_dir): for filename in filenames: img_paths.append(path+'/'+filename) print("img_paths:",img_paths) return img_pathsdef cut_img(img_paths,output_dir): scale = len(img_paths) for i,img_path in enumerate(img_paths): a = "#"* int(i/1000) b = "."*(int(scale/1000)-int(i/1000)) c = (i/scale)*100 time.sleep(0.2) print('正在处理图像: %s' % img_path.split('/')[-1]) img = cv2.imread(img_path) weight = img.shape[1] if weight>1600: # 正常发票 cropImg = img[50:200, 700:1500] # 裁剪【y1,y2:x1,x2】 #cropImg = cv2.resize(cropImg, None, fx=0.5, fy=0.5, #interpolation=cv2.INTER_CUBIC) #缩小图像 cv2.imwrite(output_dir + '/' + img_path.split('/')[-1], cropImg) else: # 卷帘发票 cropImg_01 = img[30:150, 50:600] cv2.imwrite(output_dir + '/'+img_path.split('/')[-1], cropImg_01) print('{:^3.3f}%[{}>>{}]'.format(c,a,b))if __name__ == '__main__': output_dir = "../img_cut" # 保存截取的图像目录 input_dir = "../img" # 读取图片目录表 img_paths = get_img(input_dir) print('图片获取完成 。。。!') cut_img(img_paths,output_dir)三、多进程(加快处理)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
给定一幅图像,将其中的某一部分兴趣区域裁剪出来,这在PS中很好实现,但是使用openCV如何实现呢?因此本文主要介绍openCV使用鼠标响应来裁剪图像:一、代码
本文实例为大家分享了利用python和OpenCV实现图像拼接,供大家参考,具体内容如下python+OpenCV实现imagestitching在最新的Ope
预览链接点击预览效果图如下所示,大家感觉不错,请参考实现代码。需求[x]预览:根据选择图像大小自适应填充左侧裁剪区域[x]裁剪:移动裁剪框右侧预览区域可实时预
本文实例讲述了Python图像处理之简单画板实现方法。分享给大家供大家参考,具体如下:Python图像处理也是依赖opencv的Python接口实现的,Pyth
图片裁剪是指在一个大的背景图片中裁剪出一张指定区域的图片,常见的应用是在用户设置个人头像时,可以从上传的图片中,裁剪出一个合适的区域作为自己的个人头像图片。图像