1

画像処理作業には CImg を使用しています。現在、グレー スケールの JPG、BMP、TIFF 画像のみを扱っています。CImg関数で直面している問題は次のとおりです。

CImg は、次の方法で Pixel 値を格納します。R1R2R3R4........G1G2G3G4........B1B2B3B4........

グレー スケール イメージの場合でも、3 つの異なるチャネルが個別に作成されます。これは私の仕事を非常に複雑にします。ある画像から別の画像に値をコピーするためだけに、ピクセルのすべてのコンポーネントをコピーする必要があります。アルゴリズムを遅くするすべてのチャネルを反復処理する必要があります。

私はグレースケール画像のみを扱うので、それがシングルチャンネルかマルチチャンネルかは問題ではありません.CImgで3チャンネルの画像をシングルチャンネルに変換する方法はありますか. 至急お知らせください。

よろしくお願いします

4

2 に答える 2

1

CImg::channel(int c)関数を使用します。

CImg<float> img("input.jpg"); //3 channel
img.channel(0); //now single channel
img.save("output.jpg"); //will save as a 3 channel image again

http://cimg.sourceforge.net/reference/structcimg__library_1_1CImg.html#a83af84298188d07c59c49dd0ed4d2714

于 2011-01-16T15:37:48.627 に答える