まずは画像を読み込んで、grayscaleに変換して書き込むということをやってみました。
function test1() [img, map, alpha] = imread("~/programming/octave/fft/lena.jpg"); monotone = img(:,:,1)/3 + img(:,:,2)/3 + img(:,:,3)/3; imwrite(monotone, "~/programming/octave/fft/img1.jpg"); endfunction
1行目で画像lena.jpgを読み込みます。imgに各ピクセルのRGB値が格納されます。画像サイズがn*mなら、imgはn*m*3の三次元配列になります。
2行目でRGBの平均を計算します。
3行目で画像ファイルにmonotoneの情報を書き込んでいます。この例では、第一引数はn*mの二次元配列ですが、フルカラーの情報をファイルに書き込みたい場合は、第一引数をn*m*3の三次元行列にすることもできます。
実行は以下のようにします。(ここでは上のプログラムを~/programming/octave/fft/test1.mに保存しているとします。)
octave> addpath("~/programming/octave/fft"); octave> test1以下が実行結果。
0 件のコメント:
コメントを投稿