タイトル : Microsoft Office Document Imagingを使ってみました 投稿日 : 2008/03/17(Mon) 17:07 投稿者 : ひでと
質問ではないです。Microsoft Office Document Imagingを使って、 イメージファイルファイルから数字を取り出す処理を作ってみました。 一応載せておきますが、素人ですのでご指摘いただければと思います。 二つに分けておきます Structure st_scWord Dim text As String Dim left As Integer Dim right As Integer Dim top As Integer Dim bottom As Integer End Structure Dim scWords As New List(Of st_scWord) Dim ScNums As New List(Of st_scWord) Dim ScSchrs As New List(Of st_scWord) Dim NScNums As New List(Of st_scWord) Sub GetOCR(ByVal FileName As String) Dim myDoc As MODI.Document Dim myImage As MODI.Image Dim myLayout As MODI.ILayout Dim myWords As MODI.IWords Dim myWord As MODI.IWord Dim myRects As MODI.MiRects Dim myRect As MODI.MiRect Dim i As Integer Dim scWord As st_scWord myDoc = New MODI.Document myDoc.Create(FileName) myDoc.OCR() myImage = myDoc.Images(0) myLayout = myImage.Layout myWords = myLayout.Words For i = 0 To myWords.Count - 1 myWord = myWords(i) scWord.text = myWord.Text myRects = myWord.Rects myRect = myRects(0) scWord.left = myRect.Left scWord.right = myRect.Right scWord.top = myRect.Top scWord.bottom = myRect.Bottom scWords.Add(scWord) Next End Sub Private Function minScWLeft() As Integer Dim i As Integer Dim dum As Integer dum = scWords(0).left For i = 0 To scWords.Count - 1 If dum > scWords(i).left Then dum = scWords(i).left Next Return dum End Function Private Function maxScWRight() As Integer Dim i As Integer Dim dum As Integer dum = scWords(0).right For i = 0 To scWords.Count - 1 If dum < scWords(i).right Then dum = scWords(i).right Next Return dum End Function Private Function minScWTop() As Integer Dim i As Integer Dim dum As Integer dum = scWords(0).top For i = 0 To scWords.Count - 1 If dum > scWords(i).top Then dum = scWords(i).top Next Return dum End Function Private Function maxScWBottom() As Integer Dim i As Integer Dim dum As Integer dum = scWords(0).bottom For i = 0 To scWords.Count - 1 If dum < scWords(i).bottom Then dum = scWords(i).bottom Next Return dum End Function Private Function ScwWidth() As Integer Dim dum As Integer dum = maxScWRight() - minScWLeft() Return dum End Function Private Function ScwHeight() As Integer Dim dum As Integer dum = maxScWBottom() - minScWTop() Return dum End Function Private Function ScwScale(ByVal Obj As PictureBox) As Single Dim dum As Single dum = Obj.Width / ScwWidth() Return dum End Function |