JPEGファイルに、文字が書かれていますが、
それを認識して、文字をピックアップってできるのでしょうか?
出来るか出来ないかといったら、出来る
でも、OCRソフト作るのにはライブラリでも無いと難しいな。
日本語OCRソフト「SmartOCR Lite Edition」
http://www.forest.impress.co.jp/article/2005/11/29/smartocrlite.html
>日本語OCRソフト「SmartOCR Lite Edition」
もうDownLoad不可になってた
無料でPDFのOCR「クセロReader ZERO」
http://www.moongift.jp/2007/11/xelo_reader_zero/
Office 2003 / Office 2007 の OCR 機能を使うとか。
http://msdn.microsoft.com/en-us/library/aa167607%28office.11%29.aspx
"Microsoft Office Document Imaging *.* Type Library" を参照設定:
'----------------------
Option Explicit
Private WithEvents D As MODI.Document
Private hasCancelRequest As Boolean
Private Sub Command2_Click()
hasCancelRequest = True
End Sub
Private Sub Form_Load()
Me.Caption = App.EXEName
Text1.Text = "C:\test.jpg"
Command1.Caption = "OCR"
Command2.Caption = "キャンセル"
Command2.Enabled = False
hasCancelRequest = False
Combo1.Clear
Combo1.AddItem "English"
Combo1.ItemData(0) = miLANG_ENGLISH
Combo1.AddItem "日本語"
Combo1.ItemData(1) = miLANG_JAPANESE
Combo1.ListIndex = 0
End Sub
Private Sub D_OnOCRProgress(ByVal Progress As Long, Cancel As Boolean)
Cancel = hasCancelRequest
If Cancel Then
Me.Caption = "キャンセル"
Else
Me.Caption = CStr(Progress) & "%"
End If
End Sub
Private Sub Command1_Click()
Command1.Enabled = False
Set D = New MODI.Document
D.Create Text1.Text
Dim i As MODI.Image
Set i = D.Images(0)
Set Picture1.Picture = i.Picture
Command2.Enabled = True
hasCancelRequest = False
On Error Resume Next
i.OCR Combo1.ItemData(Combo1.ListIndex)
If Err.Number <> 0 Then
MsgBox "&H" & Hex(Err.Number) & Err.Description, vbExclamation, Err.Source
Else
If Not hasCancelRequest Then
Me.Caption = App.EXEName
End If
Text2.Text = i.Layout.Text
ShowResult i.Layout.Words
End If
Command1.Enabled = True
Command2.Enabled = False
End Sub
Private Sub ShowResult(ByVal Words As MODI.Words)
Dim wd As MODI.Word
Dim w As Integer
For w = 0 To Words.Count - 1
Set wd = Words(w)
List1.AddItem CStr(w + 1) & ":" & wd.Text
Dim r As MODI.MiRect
For Each r In wd.Rects
Dim s As String
s = "(" & CStr(r.Left) & "," & CStr(r.Top) & ")-"
s = s & "(" & CStr(r.Right) & "," & CStr(r.Bottom) & ")"
List1.AddItem vbTab & s
Next
Next
End Sub
魔界の仮面弁士さん、ソースまで乗せていただきありがとうございます。
OCRという便利なものがあるのですね。
色々調べたのですが、OCRの文字認識は黒だけなのでしょうか?
白字だとダメみたいなので・・・
また、上記のソースの日本語選択だとエラーで落ちてしまいます。
> OCRの文字認識は黒だけなのでしょうか?
分かりません。
開発元の ScanSoft 社、あるいは OEM 供給先のMicrosoft社に
問い合わせてみては如何でしょう。
> 白字だとダメみたいなので
300dpi 程度のグレースケールまたは二値画像にすると良いようです。
画像加工を行うことを検討してみてください。
> 日本語選択だとエラーで落ちてしまいます。
2007 版のヘルプには、
》「Microsoft Office Document Imaging の新機能」
》OCR には、次のサポートが追加されました。
》・東アジア言語のテキストが認識されます。
という表記があるため、2003 版では動作しないかも知れません。
2007 でエラーになるようであれば、下記を試してみてください。
http://support.microsoft.com/kb/944244/ja