• 締切済み

C言語での簡単な画像処理みたいなのですが

初心者なんで言葉が適切でないかも知れませんがお許しください。 ”0”、”1”(白黒の対応)でできている何行何列かできている画像を読みこんで、自分が指定したある画像の一部の場所を出力するプログラムを作成したいのですがどうしたらよいのかさっぱりわかりません。 1ビットが白か黒か判断することはできたのですが、だれか教えていただけないでしょうか?御願いします。

みんなの回答

  • shigatsu
  • ベストアンサー率26% (511/1924)
回答No.3

もしかして、画像そのものをロードする方法とか、セーブする方法のことが「どうしたらよいのかさっぱり」の部分なんでしょうか? だとしたら、一番お手軽なのはBMPファイルでしょうかね。ベクターにも解説書があります。

参考URL:
http://www.vector.co.jp/soft/data/art/se027618.html
  • j_euro
  • ベストアンサー率25% (29/115)
回答No.2

>・・・言葉が適切でないかも知れませんが・・ 確かに・・状況が把握しきれないんで、かなり推定はいってますけど・・・ 質問の感じでは、テンプレートマッチングでOKじゃないかな。 「自分が指定したある画像」をテンプレートということにしてーー--テンプレートの原点を読み込んだ画像のいろんな位置に移動して重ねあわせていくとぴったりあうかどうかわかります。 ぴったりあうかどうか、ってのは・・・ ある位置でテンプレートの画素の値(1/0)と読み込んだ画像の画素の値(1/0)のXORを合計します。この値が小さいほどより合致していることになるわけ。 1画素ずつずらして、この値が0(か最小)になるところをさがしましょ。(forループが何重かになるはずじゃ) これだけでも絵のサイズがでかいと相当の計算量だけど、「探す絵が傾きます」なんてことになるともう大変。 少しずつ傾いたテンプレートで繰り返し~。 さらに「1/0じゃなくて、グレイスケールなんよ」だったら、ぴったり0じゃない(ことが多い)からどえらいことになってしまう。 まじめにやってたら、きりがない。冗談じゃないってことで、モザイク処理してから大まかに当たりをつけて、あやしいとこを更に細かく計算するとかーーーまぁ、いろんな工夫があるよ。 とにかく、画像処理は面白いよ。 全体的な戦略を考えながら、ループの中のコード(Cばかりでなく機械語まで)最適化を考える。最後はハードまで....ガッチリハマっても後悔しないよ。

naoyu
質問者

お礼

ありがとうございました。 先が見えてきました。いろいろなものを調べて 完成させたいと思います。

  • coolguys
  • ベストアンサー率18% (351/1917)
回答No.1

判断したものを同じようにテーブル(2次元配列など)に置き換えていけば 良いんじゃないですか? そして、指定されたところを出力する。

関連するQ&A