|
カテゴリ:カテゴリ未分類
このプログラムは『Excel2003』以降で使用できます。
このプログラムについて このプログラムは画像をトリミング(切り取り)し、 その画像をOCR(文字変換)するソフトです。 ただし、トリミング後の図に含まれる文字数が5文字未満だと、 日本語変換が「OCRエラー」になる可能性があります。 まず初めにライブラリの参照設定をすること ・メニューの ツール > マクロ > Visual Basic Editor でVisualBasic画面を起動 ・ VisualBasic画面の メニューの ツール > 参照設定で参照設定を開く ・□Microsoft Office Document Imaging 11.0 Type Library ←にチェック つづけてVBAでフォームを作成 ・ VisualBasic画面の メニューの 挿入 > ユーザーフォーム (フォームは挿入するだけでOK) シートの操作 ・どのシートでも良いので「設定」とシート名をつける。 ・「設定」シートの中にボタンを作成する。(マクロ起動用) 設定シートについて セルE2:OCR実行中にOCR解析中の文字が入力されます。 セルC3:画像のフォルダのパスを入力。 空白の場合はこのExcelと同じフォルダをデフォルトの参照場所とします。 セルB5~I5:この行は見出しです。とりあえず何か入力してください。 (何か入力されてれば問題ない) セルB6:取得したい場所名など自由に入力してください。 (ここに何か文字が入力されてれば下記7項目を取得する) セルC6:OCR判定の型です。「英数字」「日本語」のどちらかを記入して下さい。 セルD6:トリミングの上位置(上から記入ピクセルまでを削除) セルE6:トリミングの下位置(下から記入ピクセルまでを削除) セルF6:トリミングの左位置(左から記入ピクセルまでを削除) セルG6:トリミングの右位置(右から記入ピクセルまでを削除) セルH6:結果を記入するシート名 セルI6:結果を記入するセル番地。(セルH6に記入したシート上) コードのコピペ ・メニューの ツール > マクロ > Visual Basic Editor でVisualBasic画面を起動 ・ブログのコードをコピーし 設定シート へ貼り付け。 トリミングのサイズを調べる方法 ・まずは一度、[トリミング&OCR実行]ボタンで実行し元画像を選択して下さい。 (結果は気にせずに) ・このExcelと同フォルダに「image1.bmp」が作成されます。 ・このExcelを一度閉じて、新たにExcelを開きます。 ・メニューの 挿入 > 図 > ファイル このExcelと同フォルダの「image1.bmp」を選択。 ・メニューの ツール > マクロ > 新しいマクロの記述。 ・図形のトリミングを手動で行う。 ・マクロの停止をクリック。 ・メニューの ツール > マクロ > マクロ 記録したマクロを選択し編集。 ・Selection.ShapeRange.PictureFormat.CropTop の値がCropTopになる。 ・同じようにCropBottom、CropLeft、CropRightの値を記入する。 ※1ピクセル=0.75 なので 0.75で割り切れる数字を入力 現在確認されている不具合 ・実行後に、図の取り込みや、オートシェープを実行するとフリーズする。 (MODI.DocumentのCreateを実行後から) 対策が思いつかないので、使用後は一度Excelを閉じた方がいい。 開発中のメモ ・一度フォームに取り込みしてから保存してるのは、図を安定させるため。 ・あるビットマップでは解像度が71dpiだったのでフォームに取り込みしてから 保存すると96dpiで安定した。 ・図をトリミング無しでOCRして、レイアウト情報から場所別に出力も考えたが、 日本語で全部OCRすると数字部の解析率が悪くなる。 ・数字部は「英数字」でOCRした方が解析率がかなり高かったので、 トリミング無しは断念した。 (レイアウト情報は取得可能。参考までに設定の隣に出力させてる) ・フォームに、スクロールバー付のフレーム貼り付けて、 中にイメージ貼り付け図を挿入し、フレームの縦横サイズを テキストボックスの値入力で変更できるようにする。 そうすれば下記の方法でトリミングサイズやレイアウトを 取得できると思うが面倒なので断念。 1.現在表示されてる座標をスクロールバーから取得 2.フレームのサイズを取得 お気に入りの記事を「いいね!」で応援しよう
最終更新日
2010.06.28 16:42:10
コメント(0) | コメントを書く |