qianjiansong
助理工程师
助理工程师
  • 最后登录2017-04-17
  • 发帖数40
  • 金币279枚
  • 贡献勋章0枚
  • 社区居民
阅读:12270回复:171

OCR-识别出这几张图片的字符有点难度

楼主#
更多 发布于:2014-09-01 22:46
我尝试了几种方式,只能使能其中的一张,无法将其他拍出的图片也识别出,以下是我的部分代码,求大神指导
read_image (Y1, 'D:/Documents and Settings/dell1/Y1.jpg')
rgb1_to_gray(Y1,Y1GrayImage)
dev_close_window()
get_image_size(Y1GrayImage, Width, Height)
dev_open_window_fit_image(Y1GrayImage, 0, 0, -1, -1, WindowID)
set_display_font(WindowID, 20, 'mono', 'true', 'false')
dev_display(Y1GrayImage)
disp_continue_message(WindowID, 'black', 'true')
stop()
threshold (Y1GrayImage, Regions2, 67, 91)
erosion_circle (Regions2, RegionErosion, 7.5)
fill_up(RegionErosion, RegionFillUp)
reduce_domain(Y1GrayImage, RegionFillUp, ImageReduced)
emphasize (ImageReduced, ImageEmphasize, 15, 31, 2)
threshold (ImageEmphasize, Regions1, 92, 255)
connection(Regions1, ConnectedRegions)
qqwty123
专家
专家
  • 最后登录2017-04-29
  • 发帖数194
  • 金币2329枚
  • 贡献勋章1枚
  • 社区居民
  • 忠实会员
沙发#
发布于:2014-09-02 11:32
为什么不增强后再threshold呢?
x8515618
工程师
工程师
  • 最后登录2017-03-28
  • 发帖数92
  • 金币762枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
板凳#
发布于:2014-09-02 21:30
换低角度环形光,得到的效果比你这个好多了,你这个根本就没用光源
qianjiansong
助理工程师
助理工程师
  • 最后登录2017-04-17
  • 发帖数40
  • 金币279枚
  • 贡献勋章0枚
  • 社区居民
地板#
发布于:2014-09-03 08:22
x8515618:换低角度环形光,得到的效果比你这个好多了,你这个根本就没用光源回到原帖
这几张图片是打蓝色侧光得到的,这个识别难易程度跟字符的背景有关,有多种色差,以及其它异常(如旁边多了划线)等等,这个便是处理的难点之一
x8515618
工程师
工程师
  • 最后登录2017-03-28
  • 发帖数92
  • 金币762枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
4楼#
发布于:2014-09-03 08:40
qianjiansong:这几张图片是打蓝色侧光得到的,这个识别难易程度跟字符的背景有关,有多种色差,以及其它异常(如旁边多了划线)等等,这个便是处理的难点之一回到原帖
你确定这个效果可以接受?
qianjiansong
助理工程师
助理工程师
  • 最后登录2017-04-17
  • 发帖数40
  • 金币279枚
  • 贡献勋章0枚
  • 社区居民
5楼#
发布于:2014-09-03 09:37
打光的效果可能不是很好,这三张的图片的字符应该是可以识别出来的,并且字符得自己训练,以下代码为训练代码,有一个问题,在执行到create_ocr_class_mlp()算子时会报错,哪位老师可以指点一下
本部分内容设定了隐藏,需要回复后才能看到
本部分内容设定了隐藏,需要回复后才能看到
ltrobin
初学者
初学者
  • 最后登录2016-07-31
  • 发帖数14
  • 金币90枚
  • 贡献勋章0枚
6楼#
发布于:2014-09-04 16:14
额,应该可以有更好的打光效果
qianjiansong
助理工程师
助理工程师
  • 最后登录2017-04-17
  • 发帖数40
  • 金币279枚
  • 贡献勋章0枚
  • 社区居民
7楼#
发布于:2014-09-05 08:15
错误已经解决,将CharName:=uniq(TrainingNames)
语句变更为CharName:=uniq(Sort(TrainingNames))即可,同时语句上面的TrainingNames:=['(','0','2',')','D','E','L','T','A','P','F','C','V','M','P','1','1','2','1','7','D','C','W','M','1','4','3','5','(','1','0',')','5','K','2','1'] 数组元的顺序不对,需要重排,不知是否可以将字符分三排来校正;如何提取每一排?
gggggbbbbb10
技术员
技术员
  • 最后登录2016-09-12
  • 发帖数32
  • 金币104枚
  • 贡献勋章0枚
8楼#
发布于:2014-09-05 09:06
看看,学习是怎么解决的。
aljangtze
工程师
工程师
  • 最后登录2016-01-05
  • 发帖数68
  • 金币897枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
9楼#
发布于:2014-09-06 09:20
qianjiansong:打光的效果可能不是很好,这三张的图片的字符应该是可以识别出来的,并且字符得自己训练,以下代码为训练代码,有一个问题,在执行到create_ocr_class_mlp()算子时会报错,哪位老师可以指点一下回到原帖
回复可见,那就见见
manchao91
工程师
工程师
  • 最后登录2016-05-09
  • 发帖数22
  • 金币822枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
10楼#
发布于:2014-09-06 20:37
qqwty123:为什么不增强后再threshold呢?回到原帖
我也觉得应该先做下增强再threshold好点
小七爱SHH
工程师
工程师
  • 最后登录2015-03-14
  • 发帖数200
  • 金币1054枚
  • 贡献勋章0枚
11楼#
发布于:2014-09-07 17:51
qianjiansong:打光的效果可能不是很好,这三张的图片的字符应该是可以识别出来的,并且字符得自己训练,以下代码为训练代码,有一个问题,在执行到create_ocr_class_mlp()算子时会报错,哪位老师可以指点一下回到原帖
学习下
manchao91
工程师
工程师
  • 最后登录2016-05-09
  • 发帖数22
  • 金币822枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
12楼#
发布于:2014-09-08 14:41
qianjiansong:错误已经解决,将CharName:=uniq(TrainingNames)
语句变更为CharName:=uniq(Sort(TrainingNames))即可,同时语句上面的TrainingNames:=['(','0','2',')'...
回到原帖
把字符分成三行,再用sort_region 分开,分别每行进行训练。
qianjiansong
助理工程师
助理工程师
  • 最后登录2017-04-17
  • 发帖数40
  • 金币279枚
  • 贡献勋章0枚
  • 社区居民
13楼#
发布于:2014-09-09 18:37
好久了,终于有点眉目啦
对不起!您没有登录,请先登录论坛.
elau4545
初学者
初学者
  • 最后登录2016-02-03
  • 发帖数4
  • 金币28枚
  • 贡献勋章0枚
  • 社区居民
14楼#
发布于:2014-09-10 09:05
努力學習中~ halcon新手
上一页
游客

返回顶部