你有没有尝试过使用下面的代码?使用VB.net进行制作和光学字符识别。
我遇到的问题是,当我运行程序(它运行)时,Picturebox向右移动,然后消失了。请帮忙解决我的问题。
代码:
Imports Emgu.CV
Imports Emgu.Util
Imports Emgu.CV.OCR
Imports Emgu.CV.Structure
Public Class Form1
Dim OCRz As Tesseract = New Tesseract("tessdata", "eng", Tesseract.OcrEngineMode.OEM_TESSERACT_ONLY)
Dim pic As Bitmap = New Bitmap(270, 100)
Dim gfx As Graphics = Graphics.FromImage(pic)
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
'If Windows XP
gfx.CopyFromScreen(New Point(Me.Location.X + PictureBox1.Location.X + 4, Me.Location.Y + PictureBox1.Location.Y + 30), New Point(0, 0), pic.Size)\
PictureBox1.Image = pic
'If Windows 7
'gfx.CopyFromScreen(MousePosition, New Point(0, 0), pic.Size)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
OCRz.Recognize(New Image(Of Bgr, Byte)(pic))
RichTextBox1.Text = OCRz.GetText
End Sub
End Class发布于 2014-12-02 19:38:49
向timer1_tick添加额外的一行
gfx.CopyFromScreen(新点(Me.Location.X+ PictureBox1.Location.X + 4,Me.Location.Y + PictureBox1.Location.Y + 30),New Point(0,0),pic.Size)
PictureBox1.Image =图片
PictureBox1.Image =无
应该能解决你的问题
发布于 2014-09-23 13:55:25
尝试注释这两行:
gfx.CopyFromScreen(New Point(Me.Location.X + PictureBox1.Location.X + 4, Me.Location.Y + PictureBox1.Location.Y + 30), New Point(0, 0), pic.Size)
PictureBox1.Image = pic发布于 2014-11-28 01:21:59
我用同样的代码也遇到了同样的问题。
首先,需要调整下面代码行中的偏移量,以符合表单的具体要求。我不得不在我的代码中增加4到8。
gfx.CopyFromScreen(New Point(Me.Location.X + PictureBox1.Location.X + 4, Me.Location.Y + PictureBox1.Location.Y + 30), New Point(0, 0), pic.Size)我还有一个问题(Windows7,Visual Basic 2010学习版),因为图像不能正确刷新。看过之后,我发现我没有理由实际填充图片图像。让它保持透明即可。在注释出来之后,它就像一个护身符一样起作用了。
请注意,OCR不是很好,但代码现在可以做我想让它做的事情。
https://stackoverflow.com/questions/20450891
复制相似问题