网站首页 > 编程文章 正文
原创 春风视觉
- 介绍
1.1 cnocrcnocr是一款文字识别python包,支持中文和英文等多种语言,主要针对排版简单的印刷体文字图片,通常可结合文字检测引擎使用。该识别引擎遵循OSI Approved :: Apache Software License协议,在github地址:https://github.com/breezedeus/cnocr/#readme。python版本需要大于3。1.2 cnstd
cnstd是一款文字检测工具, 支持中文和英文等检测,自带多个训练模型,安装时使用pip安装即可,通常与cnocr一起使用。遵循协议为:
OSI Approved :: Apache Software License,支持python3.X以上版本,在github地址中为:https://github.com/breezedeus/cnstd。 - 安装与依赖包对图像进行处理需要安装opencv包,具体查看各自github下的requirments.txt文件,执行pip批量安装命令即可。
pip install -r requirements.txt
执行上述命令后执行下列命令:
#安装cnocr 安装过程中会安装torch,可新建虚拟环境测试
pip install cnocr 或
pip install cnocr -i https://pypi.doubanio.com/simple #指定源
#安装cnstd
pip install cnstd 或
pip install cnstd -i https://pypi.doubanio.com/simple #指定源
3. 检测与调用
3.1 cnstd使用
cnstd使用比较简单,执行cmd命令,执行下列命令后得结果。
cnstd predict -i examples/taobao.jpg -o outputs
从上图得结果可以看出cnstd可以准确得识别出文字位置。除cmd命令外,还可以执行下面得py代码。
from cnstd import CnStd
from cnocr import CnOcr
import cv2 as cv
std = CnStd(auto_rotate_whole_image=True) #这里指定模型及其他参数
cn_ocr = CnOcr()
box_info_list = std.detect('E:/100.png')
image = cv.imread('E:/100.png')
point_color = (0, 255, 0) # BGR
thickness = 1
lineType = 4
white = (0, 255, 128)
for box_info in box_info_list['detected_texts']:
# 获取坐标
cor = box_info['box']
#print(box_info)
box = cor[0:4]
ptLeftTop=(0,0)
ptRightBottom=(0,0)
if abs(box[-1]) > 80:
#存在倾斜或旋转得状况,此时中心点不变,长和宽位置互换
ptLeftTop = (int(box[0]-box[3]/2), int(box[1] - box[2]/2)) #int(box[1])
ptRightBottom = (int(box[0] + box[3]/2),int(box[1]+box[2]/2))
else:
ptLeftTop = (int(box[0]-box[2]/2), int(box[1] - box[3]/2)) #int(box[1])
ptRightBottom = (int(box[0]+box[2]/2), int(box[1] + box[3]/2))
cv.rectangle(image, ptLeftTop,ptRightBottom, point_color, 1)
#cv.circle(image, ptLeftTop, 5, white)
#cv.circle(image, ptRightBottom, 10, (0,0,0))
cv.imwrite("result_cnstd.png", image)
得到的结果如下图:
3.2 cnocr使用
按照上面代码继续执行如下代码块:
for box_info in box_info_list['detected_texts']:
cropped_img = box_info['cropped_img']
ocr_res = cn_ocr.ocr_for_single_line(cropped_img)
print('ocr result: %s' % str(ocr_res))
执行代码完成后,结果如下图所示,以元组形式展示,第一个元素表示字符内容,第二个元素表示置信度。
除可以进行单行识别外,还可以进行整体识别。此时结果与上面结果大体相同。执行代码片段如下。
from cnocr import CnOcr
ocr = CnOcr()
res = ocr.ocr('E:/100.png')
print("Predicted Chars:", res)
对cnocr的其他测试情况,见github库中的测试用例,地址如下。https://github.com/breezedeus/cnocr/blob/master/tests/test_cnocr.py。
猜你喜欢
- 2024-10-12 分享面试最常见的30道Redis面试题!
- 2024-10-12 Huntpad:一款专为渗透测试人员设计的Notepad应用程序
- 2024-10-12 50道Redis面试题史上最全,以后面试再也不怕问Redis了
- 2024-10-12 值得一看的35个Redis经典知识点(redis常用)
- 2024-10-12 20 道 Redis 面试题,面试官能问的都被我找到了
- 2024-10-12 redis已成为2020面试必问知识点,搞懂redis这些知识点,面试无忧
- 2024-10-12 推荐:工业数字化系统开发用到的串口调试小助手
- 2024-10-12 来漫谈一下Web缓存架构(web前端缓存技术)
- 2024-10-12 技术问答:送你 50 道 Redis 面试题,助你全面理解Redis!
- 2024-10-12 46道史上最全Redis面试题,面试官能问的都被我找到了(含答案)
你 发表评论:
欢迎- 06-24一个老爸画了超级有爱的365幅画 | 父亲节献礼
- 06-24产品小白看魏则西事件——用产品思维审视百度推广
- 06-24某教程学习笔记(一):13、脚本木马原理
- 06-24十大常见web漏洞——命令执行漏洞
- 06-24初涉内网,提权那些事(内网渗透提权)
- 06-24黑客命令第16集:47种最常见的**网站方法2/2
- 06-24铭说 | 一句话木马的多种变形方式
- 06-24Java隐藏的10倍效率技巧!90%程序员不知道的魔法方法(附代码)
- 最近发表
- 标签列表
-
- spire.doc (70)
- instanceclient (62)
- solidworks (78)
- system.data.oracleclient (61)
- 按键小精灵源码提取 (66)
- pyqt5designer教程 (65)
- 联想刷bios工具 (66)
- c#源码 (64)
- graphics.h头文件 (62)
- mysqldump下载 (66)
- libmp3lame (60)
- maven3.3.9 (63)
- 二调符号库 (57)
- git.exe下载 (68)
- diskgenius_winpe (72)
- pythoncrc16 (57)
- solidworks宏文件下载 (59)
- qt帮助文档中文版 (73)
- satacontroller (66)
- hgcad (64)
- bootimg.exe (69)
- android-gif-drawable (62)
- axure9元件库免费下载 (57)
- libmysqlclient.so.18 (58)
- springbootdemo (64)
本文暂时没有评论,来添加一个吧(●'◡'●)