開発のヒホ

iOSとかAndroidとかのアプリを開発するのに四苦八苦するブログ

Octaveのhisteqとかimadjustがうまく動かない

 MATLABは高いからOctaveを導入して早1週間、なかなかの使い心地です。
 たまにMATLABとは違う動作をして混乱するぐらいです。

 今回はhisteqで混乱しました。
 histeqは画像のヒストグラムをうまいことして見やすくしてくれるのですが、

filename = 'photo.png' ;
img = imread( filename ) ;

figure(1) ; clf ;
img = histeq(img) ;
imagesc( img ) ;

 みたいなコードを書いても、真っ暗な画面が表示されるだけでした。

 なんやかんやしてからreferenceを見てみると・・・

Function File: J = histeq (I, n)
I: Image in double format, with values from 0.0 to 1.0
http://octave.sourceforge.net/image/function/histeq.html

 なるほど、引数はdouble型にしないといけないんですね。
 MATLABとは若干仕様が異なるようです。

filename = 'photo.png' ;
img = double( imread( filename ) ./ 255 ) ;

figure(1) ; clf ;
img = histeq(img) ;
imagesc( img ) ;

 おお、動いた動いた。
 imadjustのほうも同じようにすれば動きました。

 うーん、int8型でもちゃんと動くようにして投げてみようかな・・・?
 その前にどうやればリクエスト送れるのか調べないといけないですね。後回し後回し。