本文主要是介绍python图片背景设置为白色,并剪裁,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
python图片背景设置为白色,并剪裁
#业务场景
由于业务系统需要维护用户的审批签章,即电子签名,用户以照片方式提供,但是照片的尺寸和背景都未经过处理,还不能维护进入业务系统。
图片显示比较暗
#目标
能将签字照片背景处理成白色,并且进行剪裁到合适大小
#实现代码
如下
from PIL import ImageL_x = []
L_y = []
def bgTrans2white(img):sp = img.sizewidth = sp[0]height = sp[1]# print(sp)for yh in range(height):for xw in range(width):dot = (xw,yh)color_d = img.getpixel(dot) # 与cv2不同的是,这里需要用getpixel方法来获取维度数据if(color_d[2] > 100):color_d = (255,255,255)img.putpixel(dot,color_d) # 赋值的方法是通过putpixelelse:# 剪裁处理L_x.append(xw)L_y.append(yh)img = img.crop((min(L_x)-5,min(L_y)-5,max(L_x)+5,max(L_y)+5))return imgimg = Image.open('C:/Users/Administrator/Desktop/test.jpg')
img = bgTrans2white(img)
# img.show() # 显示图片
img.save('C:/Users/Administrator/Desktop/test2.jpg') # 保存图片
print("处理完成!")
#最终效果
如图
#总结
1.主要是对图片的每个像素点进行遍历,根据设置的阈值进行判断是否需要修改RGB的值。
2.剪裁图片需要确定剪裁区域左上角和右下角的坐标,每张图片在坐标系中都是左上角为(0,0)点,右方和下方为正方向,坐标也是如此选取。
3.这种思路对于处理背景暗的签字照片可行,如果背景存在其他手写线条则无法剪裁出合适大小的图片
参考文章:
https://www.cnblogs.com/jaysonteng/p/12793178.html
https://blog.csdn.net/m0_59485658/article/details/123808484
这篇关于python图片背景设置为白色,并剪裁的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!