Python怎么批量裁剪图形外围空白区域(python,开发技术)

时间:2024-05-10 01:25:08 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

一、基本描述

批量裁剪掉图片的背景区域,一般是白色背景,从而减少背景值的干扰和减少存储空间。

通过检索所有图片的最小裁剪区域坐标值,然后再对图片进行裁剪。文中图都是经过标准化处理的,核心图片内容尺度都一致,所以采用该种办法,如果有很多不同大小的图片,即图片中的内容区域大小形状不一样,则一张一张的检索该图的背景区域,然后进行裁剪。即一张一张的检索裁剪区域并进行裁剪。

二、实现代码

对原文中的代码进行修改,一张一张的检索每张图的裁剪区域坐标,然后裁剪。

代码如下:

fromPILimportImageimportnumpyasnpimportosimagesDirectory=r"C:\Users\Administrator\Desktop\out"#tiff图片所在文件夹路径i=0forimageNameinos.listdir(imagesDirectory):imagePath=os.path.join(imagesDirectory,imageName)image=Image.open(imagePath)#打开tiff图像ImageArray=np.array(image)row=ImageArray.shape[0]col=ImageArray.shape[1]print(row,col)#先计算所有图片的裁剪范围,然后再统一裁剪并输出图片x_left=rowx_top=colx_right=0x_bottom=0#上下左右范围"""Image.crop(left,up,right,below)left:与左边界的距离up:与上边界的距离right:还是与左边界的距离below:还是与上边界的距离简而言之就是,左上右下。"""i+=1forrinrange(row):forcinrange(col):#ifImageArray[row][col][0]<255orImageArray[row][col][0]==0:ifImageArray[r][c][0]<255andImageArray[r][c][0]!=0:#外框有个黑色边框,增加条件判断ifx_top>r:x_top=r#获取最小x_topifx_bottom<r:x_bottom=r#获取最大x_bottomifx_left>c:x_left=c#获取最小x_leftifx_right<c:x_right=c#获取最大x_rightprint(x_left,x_top,x_right,x_bottom)#image=Image.open(imagePath)#打开tiff图像cropped=image.crop((x_left-5,x_top-5,x_right+5,x_bottom+5))#(left,upper,right,lower)cropped.save(r"C:\Users\Administrator\Desktop\out_cut_bg\{}.png".format(imageName[:-4],i))print("imageNamecompleted!")

三、效果

原图显示:

Python怎么批量裁剪图形外围空白区域

裁剪结果显示:

Python怎么批量裁剪图形外围空白区域

原文效果:

Python怎么批量裁剪图形外围空白区域

 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:Python怎么批量裁剪图形外围空白区域的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:JAVA继承、构造方法、重写和重载方法怎么用下一篇:

7 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18