前提・実現したいこと
Tesseract OCRのtess-twoを使って特定の色のみを文字認識したい
Tesseract OCRのtess-twoで文字認識を行う時に青色の字と赤色の字だけを文字を認識して結果を出したいと考えています
例この画像を読み込んだら 開 と 閉だけが認識される
青色と赤色の文字を区別するのでなく青色と赤色の文字だけを文字認識したい
こういったプログラムを作りたいんですが特定の色の指定の仕方が分かりません
言語 Java
試したこと
BufferedImageで色の取得を試したが特定の色の文字を認識は行えなかった
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/21 14:13
回答1件
0
ベストアンサー
いまひとつやりたいことが把握出来ていませんが、こういう画像を作ってOCRに喰わせればいいということですか?
(圧縮の関係か真ん中の黒文字の周辺にノイズが出てますけれど、これは簡単に取れそうですね)
諸般の事情というか趣味の関係でProcessing上で処理してますが、なにをやっているかは読めると思います。
Processing
1import java.awt.image.BufferedImage; 2import javax.imageio.ImageIO; 3import java.net.URL; 4PImage img; 5BufferedImage bimg=null; 6 7//赤または青部分を抽出 8void extractRB(BufferedImage bimg){ 9 for(int y=0; y<bimg.getHeight();y++){ 10 for(int x=0; x<bimg.getWidth();x++){ 11 int pix=bimg.getRGB(x,y); 12 int r=(pix&0x00ff0000)>>16; 13 int b=(pix&0x000000ff); 14 int g=(pix&0x0000ff00)>>8; 15 if( r>0x80&&g<0x80&&b<0x80 || r<0x80&&g<0x80&&b>0x80){ 16 bimg.setRGB(x,y,0); 17 }else{ 18 bimg.setRGB(x,y,0xffffffff); 19 } 20 } 21 } 22} 23 24void setup() { 25 try { 26 //BufferedImageに画像を読み込み 27 bimg=ImageIO.read(new URL("https://teratail-v2.storage.googleapis.com/uploads/contributed_images/7459e5ce0eb31c011c5f89045e31f5fa.gif")); 28 img=new PImage(bimg.getWidth(), bimg.getHeight(), ARGB); 29 30 //赤または青部分を抽出 31 extractRB(bimg); 32 33 //BufferedImageをPImageにコピー 34 bimg.getRGB(0, 0, img.width, img.height, img.pixels, 0, img.width); 35 img.updatePixels(); 36 surface.setSize(img.width, img.height); 37 } 38 catch(Exception e) { 39 println( e ); 40 } 41} 42 43void draw(){ 44 //PImageを表示 45 image(img, 0, 0); 46}
投稿2020/12/21 23:13
総合スコア7703
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/22 01:31
2020/12/22 01:50
2020/12/22 12:07
2020/12/22 12:18
2020/12/22 12:38
2020/12/22 13:14 編集
2020/12/22 23:20
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。