• 締切済み

c言語で画像から文字を認識 キャプチャ、マイコン

ウインドウの画面をキャプチャして、 その画像の中から文字(数値)、特定の画像を認識、 そこから決定した処理をマイコンに送り、マイコンを制御したいのですが、 c言語での画面キャプチャ、認識の方法はございますか?

みんなの回答

  • yama1718
  • ベストアンサー率41% (670/1618)
回答No.3

画像認識なんてしようとするから難しくなる。 画面表示しているアプリケーションソフトから、表示テキストの情報を読み出せばいい。 マウスポイント下のコントロールのハンドルを取得してGetTextすればできるのではと思います。 WindowFromPoint 指定された座標を含むウィンドウのハンドルを取得します。 http://msdn.microsoft.com/ja-jp/library/cc364874.aspx http://naoko.wankuma.com/win32api/win32api_0010_WindowFromPoint.html ちょうどそういう事をしているソフトを見つけました。 ポイント位置の文字列取得 http://itpro.nikkeibp.co.jp/article/COLUMN/20100222/344893/ http://www.forest.impress.co.jp/docs/serial/okiniiri/20101126_409605.html http://www.vector.co.jp/soft/win95/util/se454390.html このソフトを起動したらマウスポインタ下のコントロールの文字を拾ってくれます。 もちろん画像イメージで描画してある文字の認識は無理ですけど。

kazu-box
質問者

お礼

ソフトまで紹介してくださってありがとうございます! でも、できればjavaで一貫したくて、 認識したい対象が画像の特定のエリアなのです。 (一応手書き文字ではなく、一般のフォントなのですが。。。) もう少し調べてみます。 ありがとうございました!

noname#215107
noname#215107
回答No.2

C言語であろうがjavaだろうが、BASICだろうが、どんな言語でも可能です。 広義にはパターン認識というアルゴリズムですが、必要なのは、文字認識のアルゴリズムを理解し、そのプログラムを1から作る腕です。ソフトウェア工学の中でも、かなり高度な知識を要すると思います。 がんばって、勉強すれば不可能ではありません。

kazu-box
質問者

お礼

そうですよね。。。 テンプレートマッチング、パターンマッチング、 OpenCVで調べると難しそうだと痛感します。 でもどうしても必要なのでがんばって学んでゆこうとおもいます。 ありがとうございました!

  • wormhole
  • ベストアンサー率28% (1622/5658)
回答No.1

方法があるかないかでいえば、あります。 ただそれが1つの関数を呼べばできてしまうようなものを期待されているのでしたら、ありません。 ひとまず、以下でも参照されてみてはいかがでしょうか。 http://gihyo.jp/dev/feature/01/opencv

kazu-box
質問者

お礼

回答ありがとうございます。 確かに1つの関数を呼べれば、楽なんでしょうけどね。。。 OpenCV、参考になりました。  ありがとうございました!

関連するQ&A

  • c言語 bmp 画像比較

    c言語で画像比較をしたいです。 具体的には、デスクトップの背景の一部分(4×4bitくらい)が、画面上にあれば処理を実行する、みたいにしたいです。 24bitmap画像です。使ってるのはc言語です。 どういうAPIを使えば良いのでしょうか? それかc言語では難しいでしょうか? 回答お願いします。

  • C言語でのディレクトリの読み込みについて

    C言語でのディレクトリの読み込みについて 現在C言語を勉強中のものです。 質問なのですが、あるフォルダ内にある複数の画像(仮にファイル名:car_001,car_002....など)を順に読み込んで、繰り返し処理をするプログラムを作りたいと思っています。 というのも、現在一般物体認識という分野を勉強していまして、 http://d.hatena.ne.jp/aidiary/20100227/1267277731 のページの中段にあるような処理をしたいと思っているからです。 現在Windowsで、VisualC++2008を使用しているのですが、調べてみても決定的に参考となるようなページが見つからず困っています。 どなたかご解説していただけると助かります。ぜひよろしくお願いします。

  • C言語で制御できる教育向けキット

    この度、専門学校に頼まれて、ちょっとしたC言語による組み込みプログラミングの 講義をすることになりました。 座学では退屈するのは明白ですので、何らかのマイコンボードのようなHWキット (たとえば、7セグを制御するとか音を鳴らすとか、ロボットのようなものを制御するとか)を 使って、それをC言語でプログラミングして制御するような実習を組み込みたいと 考えています。 このような用途で使えるマイコンボードや学習キットの情報を教えていただけないで しょうか。 秋月通商をざっと見たのですが、なかなか見つけることができませんでした。 ●要件 価格はあまり高価ではない。 C言語でプログラミングして、ハードウェアを制御する 型番とか情報がありましたしたら是非おしえてください。

  • C言語で画像処理

    C言語で画像処理をしたいのですが、元となる画像の形式は何がよいのでしょうか?BMP,GIF,JPEG,PNG,などいろいろな形式がありますよね。一般的には画像処理プログラミングをするときに、どの形式の画像を用いるのでしょうか? また、その画像の読み込み方がわかりません。C言語は入門書を一通りやってみた程度で、画像処理のプログラミングの仕方がわかりません。 初心者なものでよろしくお願いします。

  • C言語の仕組み

    C言語の仕組み printfという命令で画面に文字を表示できますが、文字が表示される画面はMS-DOSの画面や開発プログラムの実行ウィンドウの中ですよね。 もしC言語がPCに直接命令できるのであれば、画面全体が真っ暗になって、そこに文字が表示されるべきなのではないかと思いました(つまり、OS上で動くべきではない)。 しかし、仮に全く最初から文字を打つとしたら、ディスプレイの仕組みを理解して、ドットで文字を表示させなければなりません。 いったいprintfというのはどこに対して命令しているものなのでしょうか

  • C言語で画像を出力したい

    C言語で画像を出力したい ホントに初歩的な質問になるのですが、申し訳ありません。 私はC言語を使ってフーリエ変換(つまりsin波形とかスペクトルの出力)をしてみたいと思っています。 調べてみると「PGPLOT」というものが使いやすいと知ったので、インストールしたのですが、そこから先の設定の説明をみてもよくわかりません このサイトに載っている青枠で囲まれた部分(#とかから始まる文章)は一体どこに記入してるのですか? コマンドプロンプトに入力するのかなと思って実行したら 「'$' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 とか、出てきます。どこの箇所の設定の説明なんですか?もしよろしければ可能な範囲でいいので教えてください。 自分は数値計算でしかC言語を使用してないので全然わかりません。でもこの説明も分かる人にはわかるんですよね?どういった参考書や勉強をしたらわかるようになるんですか? それだけでもいいので教えてください。 ちなみにパソコンはwindowsを使っています。

  • C言語を用いたマイコンと計測機器の通信

    現在,マイコン(Mbed)と測定機器間でUART通信を行い,測定機器の測定値をマイコンに取り込もうと,プログラムを作成しています。 測定器の説明書には STX 『DISP』 CR LF EOT (DISP以外は制御コード) の順にマイコンからデータを送れば測定値が返ってくると書いてありますが,C言語ではどのように記述すればよいでしょうか? ためしに printf('0x02'); printf('0x2c'); printf('0x44');.................. というように順番に送信してみましたが,測定値を取得できませんでした。 PCのVisual C++/CLIでソフトを作成し,測定器とPC間で通信したところ問題なく測定値を取得できました。 マイコンを使用して,外部機器と通信する場合,一般的にはどのようにコードを記述すればよいでしょうか? すごく初歩的な質問だと思いますが,なにとぞご教授宜しくお願い致します。

  • マイコン C言語 割り込み処理で変数参照

    マイコンのC言語で1つ困っています。 メイン処理である条件でグローバル変数Aを設定しています。 また、割り込み処理をタイマーとして使い、グローバル変数Aを参照しています。 このような動作の時に割り込み処理でグローバル変数Aを参照した際にエラーで動作しなくなります。 おそらく、同じデータをメイン処理での設定と割り込み処理での参照を行ったせいだと思いますが、 何かPICプログラミングとして最適な対処法はありますか? 是非、ご教授お願いします。

  • C言語で全角文字を扱いたいのですが、

    C言語で全角文字を扱いたいのですが、 全角文字列を入力して特定の箇所の文字(例えば3文字目)を抜き出して、表示するという感じのプログラムをしたいのですが、うまくいきません。 半角文字ならば、配列を使ってできるのですが・・・・・

  • 画面上の文字認識ソフトについて

    画面上の文字認識ソフトについて 画面上に表示されている外貨通貨の数値をリアルタイムに取得したいと考えています。 もし既存のソフトウェアで、画面上の文字認識ができるソフトウェアがあるならば紹介して頂けないでしょうか。 また、もし既存のソフトウェアで該当するものが無いなら自作を考えているのですが、 文字認識・取得のノウハウについてまとめられているサイトや書籍があれば教えて頂きたいです。 特に言語は限定しません。より効率的に実現が可能である言語(または良いAPIがあるもの)を探しています。

専門家に質問してみよう