まずは画像を読み込んで、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 件のコメント:
コメントを投稿