吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 37721|回复: 245
收起左侧

[原创工具] 图片身份证等自动合并工具

    [复制链接]
xwencai 发表于 2021-8-12 00:06
    前几天在整理身份证,拍了很多都是两张,在打印时候又需要合并成一张,量少还比较好处理,多了就非常麻烦,于是就写了个小工具,几百张可以自动合并
16.jpg
37.jpg
合并后效果
QQ截图20210812000021.jpg
当然长宽可以自己调节
废话不多说,直接贴上代码

[Python] 纯文本查看 复制代码
import PIL.Image as Image
 
import os
Image_Path = r'D:/身份证/原图/'# 存放数据的地址
 
Image_Format = ['.jpg','.JPG','.png','.PNG'] # 图片格式
 
Image_Size = 1024   # 每张小图片的大小,可自行调节大小
 
Image_Row = 2 # 图片间隔,也就是合并成一张图后,一共有几行
 
Image_Column = 1  # 图片间隔,也就是合并成一张图后,一共有几列
 
Image_Save_Path = './IDcaed_Concat/'# 储存拼接图片的文件夹
 
if not os.path.exists(Image_Save_Path):
      os.makedirs(Image_Save_Path)
        
Image_Names = [name for name in os.listdir(Image_Path) 
              for item in Image_Format
              if os.path.splitext(name)[1] == item ]#判断文件夹下的图片是否是图片格式
 
# 简单的对于参数的设定和实际图片集的大小进行数量判断
Image_Sum = Image_Row * Image_Column
if len(Image_Names) % Image_Sum!=0:#说明图片数量不对
  
     raise ValueError("合成图片的参数和要求的数量不能匹配!")
index=1
for i in range(1,len(Image_Names)+1,Image_Sum):
    #print(i)
    to_image = Image.new('RGB',(Image_Column*Image_Size,Image_Row*Image_Size))
    for x in range(1,Image_Row+1):#Image_Row行
        for y in range(1,Image_Column+1):
            from_image = Image.open(Image_Path + Image_Names[Image_Column*(x-1)+y-1+i-1]).resize(
                (Image_Size,Image_Size),Image.ANTIALIAS)
            to_image.paste(from_image, ((y - 1) * Image_Size, (x - 1) * Image_Size))
    Image_Save_Path_Index=Image_Save_Path+str(index)+'.jpg'
    to_image.save(Image_Save_Path_Index)
    index=index+1


成品也贴上,不会编码的直接用成品,图片放D盘d:/身份证/原图    这个文件夹,会改的自己改代码也可以
链接: https://pan.baidu.com/s/1EMvIBH5m2zKFo4yh-c6HOQ 提取码: kj2j 复制这段内容后打开百度网盘手机App,操作更方便哦
工具可以自己修改,可以使用的地方非常多,不一定用来处理sfz 只是提供一种思路,反正可以节约大量工作时间


免费评分

参与人数 30吾爱币 +33 热心值 +25 收起 理由
sys924300 + 1 + 1 热心回复!
nqldxz + 1 + 1 谢谢@Thanks!
taykey + 1 + 1 楼下怕量大的那几天要多喝水,注意保暖
xbxbxbxb + 1 + 1 热心回复!
NMG69 + 1 + 1 热心回复!
scqwhw + 1 + 1 用心讨论,共获提升!
263387 + 1 谢谢@Thanks!
liuzixue + 1 + 1 很好,就怕量大的那几天
xiaopenyou + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
红雨飘飘 + 1 + 1 谢谢@Thanks!
Hezee + 1 谢谢@Thanks!
jnez112358 + 1 + 1 谢谢@Thanks!
沉世 + 1 + 1 热心回复!
天幕晨光 + 1 热心回复!
8180861 + 1 + 1 谢谢@Thanks!
beenhow + 1 我很赞同!
yocoporter + 1 + 1 热心回复!
linsun + 1 谢谢@Thanks!
h07799486 + 1 用心讨论,共获提升!
yuhaipeng + 1 + 1 谢谢@Thanks!
ladybug2020 + 1 谢谢@Thanks!
lyslxx + 1 + 1 我很赞同!
angguandianzi + 1 + 1 我很赞同!
xfqm + 1 + 1 我很赞同!
LIKE-lv + 1 + 1 谢谢@Thanks!
barton88 + 1 + 1 我很赞同!
x_killua + 1 + 1 谢谢@Thanks!
王金彪 + 1 + 1 热心回复!
jiutianjun + 1 鼓励转贴优秀软件安全工具和文档!
风之暇想 + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

BlackHawktrib 发表于 2021-9-22 18:22
本帖最后由 BlackHawktrib 于 2021-9-26 17:51 编辑

xwencai楼主大佬, 改进重要的两个 功能(身份证正反 居中合并 A4纸 识别后 信息导出到 Excel   )和 ( 图片放置路径 能有自定义功能 ) 就完整了.
以下是 百度开放API写的身份证号码识别demo识别代码  搬运他人写的可作参考

[Python] 纯文本查看 复制代码
# encoding:utf-8

import requests
import base64
import json

request_url = "https://aip.baidubce.com/rest/2.0/ocr/v1/idcard"
# 二进制方式打开图片文件
f = open('此处更该为你的本地图片地址', 'rb')
img = base64.b64encode(f.read())
params = {"id_card_side": "front", "image": img}
access_token = '改成你自己的access_token'
request_url = request_url + "?access_token=" + access_token
headers = {'content-type': 'application/x-www-form-urlencoded'}
response = requests.post(request_url, data=params, headers=headers)
if response:
    name = json.loads(response.text)['words_result']['姓名']['words']
    address = json.loads(response.text)['words_result']['住址']['words']
    birth = json.loads(response.text)['words_result']['出生']['words']
    id = json.loads(response.text)['words_result']['公民身份号码']['words']
    sex = json.loads(response.text)['words_result']['性别']['words']
    zu = json.loads(response.text)['words_result']['民族']['words']

    # log_id = items['log_id']
    print('正在识别中')
    print('姓名:', name, '性别:', sex, '住址:', address, '身份证号:', id, '出生年月:', birth, '民族:', zu)
if response:
    print('已经识别成功')


好多小伙伴不知道access_token如何获取 于是我又写了一个获取access_token的小demo


[Asm] 纯文本查看 复制代码
import requests
import json

url = "https://aip.baidubce.com/oauth/2.0/token"

data = {
    'grant_type': 'client_credentials',
    'client_id': ''改成你自己的id',
    'client_secret': '改成你自己的secret',
}

response = requests.post(url=url, data=data)
data2 = json.loads(response.text)  ##转换成字典格式
accesstoken = data2['access_token']


此代码可以直接在控制台打印出来accesstoken 自己直接放到demo中即可

参考

参考

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
端午后第四天 + 1 + 1 能打包个成品吗?便宜伸手党

查看全部评分

中间人 发表于 2021-8-18 17:43
是那种   智能 定位 调整 图片中的 身份证  至 8.6cm *5.4cm  然后 合并         还是 简单的   两图 合并呀

免费评分

参与人数 1热心值 +1 收起 理由
camel0102 + 1 我很赞同!

查看全部评分

 楼主| xwencai 发表于 2021-8-12 00:14
dngzdly 发表于 2021-8-12 23:04
谢谢楼主分享,,
干掉婊子 发表于 2021-8-13 00:27
表示没看懂
52bug 发表于 2021-8-13 00:47
本帖最后由 52bug 于 2021-8-13 00:52 编辑

楼主厉害
头像被屏蔽
hwxq43 发表于 2021-8-13 04:26
提示: 作者被禁止或删除 内容自动屏蔽
meteorsun 发表于 2021-8-13 06:29
实践出真知啊
头像被屏蔽
yy2013 发表于 2021-8-13 07:04
提示: 作者被禁止或删除 内容自动屏蔽
163yqs 发表于 2021-8-13 07:38
很实用,谢谢提供!
道本自然 发表于 2021-8-13 07:53
谢谢楼主!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-26 09:30

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表