Foxtable(狐表)用户栏目专家坐堂 → [求助] OCR识别不了截屏内容。


  共有3093人关注过本帖树形打印复制链接

主题:[求助] OCR识别不了截屏内容。

帅哥哟,离线,有人找我吗?
54292550
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:287 积分:4213 威望:0 精华:0 注册:2011/8/19 10:07:00
[求助] OCR识别不了截屏内容。  发帖心情 Post By:2021/12/28 22:42:00 [显示全部帖子]

参考这个OCR示例:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=100241&page=0&move=next

参考这段截屏代码:
Dim s As new Size(100,100) '截取的大小
Dim myGraphics As Graphics = basemainform.CreateGraphics()
Dim bit As New Bitmap(s.Width, s.Height, myGraphics)
Dim memoryGraphics As Graphics = Graphics.FromImage(bit)
memoryGraphics.CopyFromScreen(0,0,0,0,s) '截取的开始位置,坐标(100, 200)
bit.save("d:\test.jpg")
memoryGraphics.dispose
myGraphics.dispose
bit.dispose

只要是截屏代码保存的文件,OCR返回的内容是:#ERROR: Failed to load image
就算把能识别的照片通过画图软件直接复制出来,复制到截屏的文件中保存,到截屏中的那个文件就识别不了了。感觉好像是截屏出来的图片格式跟其他有啥不一样吗?


 回到顶部
帅哥哟,离线,有人找我吗?
54292550
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:287 积分:4213 威望:0 精华:0 注册:2011/8/19 10:07:00
  发帖心情 Post By:2021/12/30 16:14:00 [显示全部帖子]

@蓝老师 用百度API是可以用了,我是想做一个监控一样的东西,每秒钟触发一次的监控,这百度按次数算是有些贵了。而且我识别的东西很简单,就四个汉字,我感觉还是Asprise-OCR用起来最便捷,就是我碰到的那个问题很奇怪哦。。截屏自动保存的文件和图片不都一样吗。。咋还出现了那种情况?

 回到顶部
帅哥哟,离线,有人找我吗?
54292550
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:287 积分:4213 威望:0 精华:0 注册:2011/8/19 10:07:00
  发帖心情 Post By:2021/12/30 17:18:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:屏幕截图 2021-12-30 170500.png
图片点击可在新窗口打开查看

蓝老师,找到了一个规律,就是如果我把截屏后的文件通过画图软件另存一下的话就能识别了,保存的文件格式都不需要改,就是存的时候会跳出来丢失透明度的提示,刚才我试了另外一种截屏方法,也是会有丢失透明度的提示,只要另存好了文件,那个OCR就可以用了,就能识别了。这个透明度是个什么情况,截屏的时候能不能直接去掉?

 回到顶部
帅哥哟,离线,有人找我吗?
54292550
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:287 积分:4213 威望:0 精华:0 注册:2011/8/19 10:07:00
  发帖心情 Post By:2021/12/30 17:40:00 [显示全部帖子]

@蓝老师 搞定了,就把截屏文件直接保存成png格式就行了。
Dim s As new Size(100,100) '截取的大小
Dim myGraphics As Graphics = basemainform.CreateGraphics()
Dim bit As New Bitmap(s.Width, s.Height, myGraphics)
Dim memoryGraphics As Graphics = Graphics.FromImage(bit)
memoryGraphics.CopyFromScreen(0,0,0,0,s) '截取的开始位置,坐标(100, 200)
bit.save("d:\test.png")
memoryGraphics.dispose
myGraphics.dispose
bit.dispose

 回到顶部