当前位置: 首页 > news >正文

梦幻创意晋城网站建设微信建设银行官方网站

梦幻创意晋城网站建设,微信建设银行官方网站,商丘58同城招聘网最新招聘,厦门制作网页公司目录 处理流程与界面各接口编写时遇到的一些问题上传图片识别结果标签显示中文 处理流程与界面 首先点击“上传图片”按钮,可以选择文件夹中含有汽车车牌的图片,并显示在“图片框”中。 点击“检测车牌”按钮,会先对“图片框”中即含有汽车车…

目录

  • 处理流程与界面
  • 各接口编写时遇到的一些问题
    • 上传图片
    • 识别结果标签显示中文

处理流程与界面

在这里插入图片描述
首先点击“上传图片”按钮,可以选择文件夹中含有汽车车牌的图片,并显示在“图片框”中。
在这里插入图片描述
点击“检测车牌”按钮,会先对“图片框”中即含有汽车车牌的图片使用自训练的yolov5目标检测模型进行处理,框选出车牌号部分;然后将框选出的车牌号部分使用paddlehub进行处理,得到车牌号的识别结果;然后将识别结果和识别框添加到含有汽车车牌的图片上,并更新显示在“图片框”中。
在这里插入图片描述
可以看到识别的结果中,中文显示为???,字母和数字正常显示,通过查询资料可知,yolov5 2.0分支的源代码中,detect.py中plot_one_box添加识别结果字符串的具体实现是通过cv2.putText()完成,而putText()不支持非ASCII码的字符。从OpenCV 5.0开始,putText()也支持这些非ASCII码的字符OpenCV 4.x也是可以用putText()绘制中文的,不过需要使用opencv_contrib仓库的freetype模块提供的putText()。freetype模块是对FreeType2的封装,在编译安装OpenCV时需要确保已安装第三方库freetype和harfbuzz,并且打开-DWITH_FREETYPE=ON。查找发现另一种使用稍简单的方法,使用ImageDraw实现,修改代码后界面如下:
在这里插入图片描述

各接口编写时遇到的一些问题

上传图片

点击“上传图片”按钮后,通过信号和槽机制,触发open_image()方法

self.upload_btn.clicked.connect(self.open_image)

open_image()实现如下:

def open_image(self):self.lic_label.setText('')self.imgName, self.imgType = QFileDialog.getOpenFileName(self.win, "打开图片", "img", "*.jpg;*.tif;*.png;;All Files(*)")if self.imgName == "":return 0ori_img = QPixmap(self.imgName).scaled(self.pics[0].width(), self.pics[0].height(), Qt.KeepAspectRatio)self.pics[0].setPixmap(ori_img)

需要注意的是使用QFileDialog.getOpenFileName()打开一个文件,传递的第一个参数的类型需为QWidget类型或其子类,否则控制台会出现如下提示,传入的参数类型不匹配

self.imgName, self.imgType = QFileDialog.getOpenFileName(self, "打开图片", "img", "*.jpg;*.tif;*.png;;All Files(*)")
TypeError: getOpenFileName(parent: Optional[QWidget] = None, caption: Optional[str] = '', directory: Optional[str] = '', filter: Optional[str] = '', initialFilter: Optional[str] = '', options: Union[QFileDialog.Options, QFileDialog.Option] = 0): argument 1 has unexpected type 'xxx'

识别结果标签显示中文

使用PIL库中的Image,ImageDraw,ImageFont实现puttext_zn.py

import cv2
import numpy as np
from PIL import Image, ImageDraw, ImageFontclass PutTextZn():def cv2ImgAddText(self, img, text, left, top, textColor=(0, 255, 0), textSize=20):if (isinstance(img, np.ndarray)):  # 判断是否OpenCV图片类型img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))# 创建一个可以在给定图像上绘图的对象draw = ImageDraw.Draw(img)# 字体的格式fontStyle = ImageFont.truetype("simsun.ttc", textSize, encoding="utf-8")# 绘制文本draw.text((left, top), text, textColor, font=fontStyle)# 转换回OpenCV格式return cv2.cvtColor(np.asarray(img), cv2.COLOR_RGB2BGR)

在yolov5 2.0分支的源代码detect.py中,检测结果中的xyxy为一个存有检测结果框的列表

x1, y1, x2, y2 = xyxy

其中x1,y1为检测结果框的左上角点的坐标;x2,y2为检测结果框的右下角点的坐标。x1,y1即分别对应cv2ImgAddText()方法的形参列表中的left,top

put_text_zn = PutTextZn()
lic_reco_img = put_text_zn.cv2ImgAddText(im0, ocr_res, int(x1), int(y1 - 30), (255, 0, 0), 30) #rgb

im0为numpy.ndarray类型,其如何使用QLabel即self.pics[0]显示呢,可以使用以下方法


lic_img = QImage(im0.data, im0.shape[1], im0.shape[0], im0.shape[1]*3, QImage.Format_BGR888)lic_pix = QPixmap.fromImage(lic_img)self.pics[0].setPixmap(lic_pix)
http://www.yayakq.cn/news/262800/

相关文章:

  • 用自己的电脑建设网站网络架构指什么
  • 中国网站备案信息查询公司网站最下面突然有乱码
  • 云南网站开发报价中国黄页电话簿
  • 谁家做网站比较好工程招标信息在哪看
  • 建立网站的顺序山东网站排名优化公司
  • 举报网站建设情况 汇报商业品牌网
  • 做任务赚佣金网站有哪些网站开发调查问卷
  • 做婚姻网站赚钱wordpress中文商城模板
  • 网站域名注册流程北京h5网站开发公司
  • 游戏网站制作板式贺卡制作网页
  • 网站建设及推广枣强景洪网站建设
  • 简单的企业网站的主页正规装饰装修公司
  • 贾汪区建设局网站广州网站推广服务商
  • 如何建立网站快捷方式上海网站开发建设价格
  • 网站建设 sql 模版购物网站可以备案吗
  • 企业个性化网站建设费用上传视频网站开发
  • 个人电脑可以做网站服务器吗加盟类网站建设
  • 北京免费建站大型网站建设优化排名
  • 苏州网站关键字优化服务器被攻击怎么办
  • 网站关键词优化到首页难度网站服务器怎么配
  • 做私单的网站河北省住房建设厅网站首页
  • 高唐网站建设公司成都网站建设 平易云
  • 成都创意网站设计怎么开通网站和进行网页设计
  • 湖南广厦建设工程有限公司网站网站设计语言翻译
  • 莆田网站制作南宁 江苏建设工程信息网站
  • 工业品企业网站源码深圳附近做个商城网站找哪家公司好
  • 都昌县建设局网站济南建设工程交易网
  • 怎样通过阿里云建设网站丽水网站制作公司
  • 智慧团建登录入口官方网站赣州网上文明实践系统
  • 做软装什么网站可以吗郑州手机端建站模板