图片字体框检测--标注图片的检测

news/2024/11/19 11:20:23/
import os
import cv2
import pandas as pd#不做平移或者旋转等变化的
path="E:\qichacha\data\zuobiao\\csv" #原始坐标保存路径
for i in os.listdir(path):back = os.path.join(path, i)data = pd.read_csv(back,header=None)#读取图片对应名称imgBgr=cv2.imread("E:\\qichacha\\img\\zengguang\\jiaoyan\\0{}.jpg".format(data.loc[0][8]))#打开对应csv的图片for i in range(0,int(len(data))):ptRectLeftUp=(data.loc[i][0],data.loc[i][1])  #左上ptRectRightDown=(data.loc[i][6],data.loc[i][7])imgRet = cv2.rectangle(imgBgr, ptRectLeftUp, ptRectRightDown, (0, 0, 255), 3)cv2.imwrite("E:\qichacha\img\\test\\0{}.jpg".format(data.loc[0][8]), imgRet)print("成功--{}".format(data.loc[0][8]))#平移变化的
path="E:\qichacha\data\zuobiao\\csv"#同上
for i in os.listdir(path):back = os.path.join(path, i)data = pd.read_csv(back,header=None)# print(data.loc[0][8])path1=data.loc[0][8]k="E:\qichacha\data\zuobiao\\csv1\\0"+path1+".csv"#读取对应图片平移的距离csv文件路径data1=pd.read_csv(k,header=None)imgBgr=cv2.imread("E:\\qichacha\\img\\zengguang\\pingyi\\0{}.jpg".format(data.loc[0][8]))#保存对应的图片for i in range(0,int(len(data))):ptRectLeftUp=(data.loc[i][0]+data1.loc[0][0],data.loc[i][1]+data1.loc[0][1])  #左上ptRectRightDown=(data.loc[i][6]+data1.loc[0][0],data.loc[i][7]+data1.loc[0][1])#右下imgRet = cv2.rectangle(imgBgr, ptRectLeftUp, ptRectRightDown, (0, 0, 255), 3)cv2.imwrite("E:\qichacha\img\\test1\\0{}.jpg".format(data.loc[0][8]), imgRet)print("成功--{}".format(data.loc[0][8]))#裁剪,移动裁剪的起始位置宽高
path="E:\qichacha\data\zuobiao\\csv"
for i in os.listdir(path):back = os.path.join(path, i)data = pd.read_csv(back,header=None)imgBgr=cv2.imread("E:\\qichacha\\img\\zengguang\\caijian\\0{}.jpg".format(data.loc[0][8]))for n in range(0,int(len(data))):ptRectLeftUp=(data.loc[n][0]-40,data.loc[n][1]-100)  #左上ptRectRightDown=(data.loc[n][6]-40,data.loc[n][7]-100)imgRet = cv2.rectangle(imgBgr, ptRectLeftUp, ptRectRightDown, (0, 0, 255), 3)cv2.imwrite("E:\\qichacha\\img\\ceshi\\test3\\0{}.jpg".format(data.loc[0][8]), imgRet)print("成功--{}".format(data.loc[0][8]))#旋转,只是1:1缩放的只有旋转可用
import math
path="E:\qichacha\data\zuobiao\\csv"#同上
for i in os.listdir(path):back = os.path.join(path, i)#对应读取的原始坐标的路径data = pd.read_csv(back,header=None)path1=data.loc[0][8]#确定对应图片和旋转度数csv的路径k="E:\qichacha\data\zuobiao\\csv2\\0"+path1+".csv"data1=pd.read_csv(k,header=None)#读取旋转度数的csv文件img=cv2.imread("E:\qichacha\img\zengguang\\xuanzhuan\\0{}.jpg".format(data.loc[0][8]))for i in range(0, int(len(data))):# 原始左上x1 = int(data.loc[i][0]);y1 = int(data.loc[i][1])# 原始右上x1_1 = int(data.loc[i][2]);y1_1 = int(data.loc[i][3])# 原始左下x1_2 = int(data.loc[i][4]);y1_2 = int(data.loc[i][5])# 原始右下x1_3 = int(data.loc[i][6]);y1_3 = int(data.loc[i][7])# 按顺时针旋转cos_5 = math.cos(math.radians(-data1.loc[0][0]))sin_5 = math.sin(math.radians(-data1.loc[0][0]))height, width = img.shape[0:2]x2 = int(width / 2);y2 = int(height / 2)# x,y旋转后的点,x1,y1旋转前的点,x2,y2中心点# 旋转后左上点x_1 = int(((x1 - x2) * cos_5) - ((y1 - y2) * sin_5) + x2)y_1 = int(((y1 - y2) * cos_5) + ((x1 - x2) * sin_5) + y2)# 旋转后右上点x_2 = int(((x1_1 - x2) * cos_5) - ((y1_1 - y2) * sin_5) + x2)y_2 = int(((y1_1 - y2) * cos_5) + ((x1_1 - x2) * sin_5) + y2)# 旋转后左下点x_3 = int(((x1_2 - x2) * cos_5) - ((y1_2 - y2) * sin_5) + x2)y_3 = int(((y1_2 - y2) * cos_5) + ((x1_2 - x2) * sin_5) + y2)# 旋转后右下点x_4 = int(((x1_3 - x2) * cos_5) - ((y1_3 - y2) * sin_5) + x2)y_4 = int(((y1_3 - y2) * cos_5) + ((x1_3 - x2) * sin_5) + y2)cv2.line(img, (x_1, y_1), (x_2, y_2), (0, 0, 255), 2)cv2.line(img, (x_1, y_1), (x_3, y_3), (0, 0, 255), 2)cv2.line(img, (x_2, y_2), (x_4, y_4), (0, 0, 255), 2)cv2.line(img, (x_3, y_3), (x_4, y_4), (0, 0, 255), 2)cv2.imwrite("E:\qichacha\img\\test2\\0{}.jpg".format(data.loc[0][8]), img)print("成功--{}".format(data.loc[0][8]))

在这里插入图片描述
请添加图片描述
请添加图片描述

需要的原始图片代码:使用图像增广后变换:https://blog.csdn.net/yangzheng_520/article/details/120153929

营业执照生成:https://blog.csdn.net/yangzheng_520/article/details/120138222

关注一下,谢谢


http://www.ppmy.cn/news/497415.html

相关文章

Pillow 10行代码给营业执照模板写数据,批量生产

对于给图片打标签,我们经常使用opencv来,但是在遇到中文成为流行语言的时候,给图片写上中文成为一大亮点。 简介 就例如在车辆属性、车牌识别的时候,我们经常会使用得到中文。 下面是根据营业执照的模板样式给它赋予数据&#…

文字横向自适应宽度并横向排列

如下图左侧图,候选项是后端的数据字典中动态管理的数据,并不能事先知道文本字数,即选项的所占宽度,也就无法直接设定宽度来让文本拥有个比较好的样式,那么想要达到右侧效果图那样的效果该怎么做? 可能很多人…

营业执照数据生成

import pandas as pd from PIL import Image from PIL import ImageFilter from PIL import ImageEnhance import cv2 from PIL import ImageDraw, ImageFont from PIL._imaging import fontimport csv import codecs #两个函数用于保存需要的坐标点 # def save_to(path,name):…

广告设计和平面设计区别是什么?

大家好我是微风,一个爱设计爱生活的平面设计师,最近总有一些朋友问我,什么是广告设计,什么是平面设计,广告设计和平面设计区别是什么,那么今天的这篇文章主要给大家介绍下广告设计和平面设计区别是什么&…

安卓商店应用商城申请需要资料

Oppo应用商店 所需文件列表 企业营业执照法人代表身份证 要求:a、企业营业执照扫描件必须为彩色,要求照片清晰,字迹清楚,无遮挡或涂改; b、提供的营业执照经营范围必须与互联网有相关关系,否则不予审核通过…

商标和字号的五大区别

商标和字号的五大区别 1、核发机关不一样 注册商标是有国家知识产权局核发的,商标申请人需要提交相应的材料至国家知识产权局商标就进行商标注册申请,审核通过后才会获得商标注册证书。而公司字号是工商行政管理部们核发的,在注册公司的时候也…

阿里云域名备案

2019独角兽企业重金招聘Python工程师标准>>> 首先购买域名,虽然说域名没实名认证不能解析,但是可以先弄邮箱(如果有需要的话) 邮箱只能使用QQ的地址登录,而不能使用mail.youdomain.com登录(不允许和未解析) 这时可以顺便开通一下对…

vue 打印(模板套打)

vue 使用 print-template 生成pdf 打印 。支持生成二维码、条形码、文本、图片、线 安装 yarn add print-template或npm install print-template 内容类型 line线条barcode条形码qrcode二维码image图片text文本 内容属性 通用 x必须 所有类型 y必须 所有类型 default固定…