• ベストアンサー

画像処理について質問です。

画像処理について質問です。 入力画像の画素に番号を振り、その番号を参照すればその画素の画素値がわかるような処理を実装したいと考えています。また、任意の画素を削除したら、その画素に割り当てられていた番号も削除できる処理も加えて実装したいのです。 要は、画素と画素番号を対応づける処理です。 うまく説明できていませんがどうすればいいか教えていただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • kb-nike
  • ベストアンサー率36% (72/200)
回答No.1

「画像」の画素に通し番号を振ることは、 「画像」の左上の画素に0(ゼロ)を割り当て、 行方向に1ずつ増加して、右端の画素に「巾」-1まで割り当てて、、 次の行には「巾」の値~「巾」×2-1を割り当て、 として、最下行の右端の画素には「巾×高さ」-1を割り当てればよい。 「画像ファイル」では「行(巾)」が4バイトの倍数になるようにダミーが挿入されている場合もあります。 その場合、 「画像」の画素と「画像ファイル」の画素を対応させるのはかなり面倒な処理が必要になります。 むしろ、「巾」と「高さ」に対応する、2次元の番号を割り当てた方が処理しやすいかとおもいます。 また、通常「画像」は長方形(または正方形)であるので、 (画素の値を変更するのではなく)画素を削除した場合、 単純に隣の画素を詰めるということができるのか…、 という問題もあると思います。

illckbc
質問者

お礼

回答ありがとうございます。 実際に画素に番号を割り当てるにはどうプログラムを組めばいいでしょうか? 参考になるURLなどありましたら教えてください。 それで、画素は削除というよりも、画素間の勾配を計算して画素同士の類似性の高い経路をグラフカットで計算してその部分の画素値に隣の画素値を入れていき、一回の処理で幅を1画素分縮める処理をします。 これを任意の回数繰り返していって画像幅を小さくするプログラムを作っています。

関連するQ&A