内容简介:该项目诞生于一次爬虫事件,当时一时兴起想把某租房网信息爬下来,前面进行的还是挺顺畅的,但是在租房价格信息上被摆了一道,房屋的价格信息为一个数字图片为底加上偏移量来显示的,和雪碧图一样的实现方式,当然,其中加上了一点小算法,具体如下。略一思索,倒也不是什么大事儿,只要加个识别的过程再辅以算法即可。
前言
该项目诞生于一次爬虫事件,当时一时兴起想把某租房网信息爬下来,前面进行的还是挺顺畅的,但是在租房价格信息上被摆了一道,房屋的价格信息为一个数字图片为底加上偏移量来显示的,和雪碧图一样的实现方式,当然,其中加上了一点小算法,具体如下。
-
获取数字图片信息和
offset
信息-
{ "offset": [ [1, 4, 2, 8], [5, 1, 7, 8], [5, 1, 3, 8], ... ] }
-
由 offset 信息加上一点算法得出
position
信息-
(background-position: xxx px)
-
- 以数字图片为背景,加上偏移,
append
到价格信息他应该在地方
略一思索,倒也不是什么大事儿,只要加个识别的过程再辅以算法即可。
在实行图像识别的过程中借助到了 google
的开源软件 tesseract-OCR
,因为爬虫环境是 node
,遂写了一个适用于 tesseract-OCR
最新版本的 node
插件,后续还添加了命令行使用的功能。
演示
命令行使用 --- 1
命令行使用 --- 2
模块使用 --- 1
项目在这里
如果觉得我对你有帮助,不妨给我个 star 吧,蟹蟹~
正文
命令行使用
想要使用图像识别首先要确保电脑中已经安装了 tesseract-OCR
点击下载 。
想要使用命令行建议全局安装
npm install node-tesr -g
tesr --from=./test/output.jpg --to=./output.txt
参数说明
--from 需要识别的图片路径(必须) --to 若传入此参数会将识别的文字输出到该文件下(非必须,默认会将识别内容输出到命令行) --l 识别语言,对中文稍微做了点处理,识别简体 --l=chs,识别繁体 --l=cht(非必须,默认为 eng) --p 见 lib/config.js 里的说明(非必须,默认为 3 自动模式) --o 见 lib/config.js 里的说明(非必须,默认为 3 自动模式)
模块引入使用
npm install node-tesr
const tesseract = require('node-tesr') tesseract('./output.jpg', { l: 'eng', oem: 3, psm: 3 }, function(err, data) { // 此处获得识别内容 console.log(data) }) // 或者如下也可 tesseract('./output.jpg', function(err, data) { // 此处获得识别内容 console.log(data) })
后语
效果
经测试效果还是不错的,但是有一点需要注意一下,上面提到该网站的数字图片是透明底的,测试发现 tesseract-OCR
对透明底的似乎无解,这个时候就需要结合一下 images
这个 node
插件
let images = require('images') images(500, 100) .fill(0xff, 0xff, 0xff, 1) .draw(images('demo.png'), 10, 10) .save('output.jpg', { quality: 100 })
将透明底填充为白底即可正常识别
如何提高我的图像识别准确率
老板!我的图像识别率很低怎么破!
来,看这里,这个可以提高图像识别率。
待办
then
页脚
代码即人生,我甘之如饴。
我在这里 gayhub@jsjzh 欢迎大家来找我玩儿。
欢迎小伙伴们直接加我,拉你进群一起学习前端呀,记得备注一下你来自哪里哦。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 原 荐 Qt封装百度人脸识别+图像识别
- 面部识别软件有助于识别美国内战士兵
- 微软删除人脸识别数据库 源于“伦理”识别
- 文字检测识别系统好用吗?都针对什么进行识别?
- 利用声纹识别技术识别400电话语音性别
- 还在为人脸识别震惊?猪脸识别都有啦
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
深入理解C++11
Michael Wong、IBM XL编译器中国开发团队 / 机械工业出版社 / 2013-6 / 69.00元
《深入理解C++11:C++11新特性解析与应用》内容简介:国内首本全面深入解读C++11新标准的专著,由C++标准委员会代表和IBM XL编译器中国开发团队共同撰写。不仅详细阐述了C++11标准的设计原则,而且系统地讲解了C++11新标准中的所有新语言特性、新标准库特性、对原有特性的改进,以及如何应用所有这些新特性。 《深入理解C++11:C++11新特性解析与应用》一共8章:第1章从设计......一起来看看 《深入理解C++11》 这本书的介绍吧!