python图片二值化后找白色中心_使用PIL中Image.rotate()之后将回转后的非图像区域变成白色...

前言

最近有项目需要用到图像识别,然后就基于Python开发,同时使用了Opencv/PIL/numpy等图像算法以及识别库,但是在识别的图像中,可能由于人为的原因,摄像的尺度不是那么准确,但对于标记点来说整个图像识别的计算就可能要偏斜,后来就想到了可以通过图像回转将图片回正,然后再进行识别计算。

正文

在使用PIL里面的Image.rotate()进行图片回转后,回转的非图片区域就是黑色的,但是这个样子就和我个人的图像标识点产生冲突了,所以我们需要将非图片区域的黑色变成白色:

大概思路就是创建一个新的白色图层,然后将新图层与回转图层进行图像的一个复合,生成一个新的图像即可,以下为主要实现代码:

# 读取图片

pilim = Image.open('./res/use.jpg')

# 转换为有alpha层

im2 = pilim.convert('RGBA')

# 旋转

rot = im2.rotate(-18.0, expand=1)

# 创建一个与旋转图像大小相同的白色图像

fff = Image.new('RGBA', rot.size, (255,)*4)

# 使用alpha层的rot作为掩码创建一个复合图像

out = Image.composite(rot, fff, rot)

# 保存

out.convert(pilim.mode).save('./res/out.jpg')

后记

在图像算法识别中,要运用到大量的数学知识,所以博主先不给你们说了,我去补习一下初中数学先….

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值