« 今日のxkcd | トップページ | 西大伍 代表初選出!!! »

2011年5月28日 (土)

imfinfoおせー。MATLAB2007b。

今週は数ヶ月ぶりにMATLABで仕事している。

Pythonを覚えてからはきれいで読みやすいコードを心がける癖がついて、ソースが多少縦にながくなっても変数名を分かりやすくしたり、インデントとかの整形や、データ型もuint8が使えるときはなるべくつかってメモリを最適化したりなどいろいろと良い影響がある。

MATLABはちょうどよいハイレベルな関数が用意されているときはほんとに簡単にやりたい事ができて快適。しかしないときは結構フラストレーションがたまる。

例えば、imfinfoをつかってTIFFファイルから複数のフレームを扱うような場合。MathWorksのスティーブさんのブログによると、

fname = 'my_file_with_lots_of_images.tif';
info = imfinfo(fname);
num_images = numel(info);
for k = 1:num_images
    A = imread(fname, k);
    % ... Do something with image A ...
end

なんていう、、まず何枚フレームがあるかを調べて、それだけForループしてやるなんていう典型的な処理がバージョン2007bまでは遅かったのが2008と2009に段階的に改善されたらしい。

たかだか100以下のフレームしかないファイルなのに結構おそいので、もっといい方法があるにちがいないとおもったのに、そうではないらしい。もちろん最新版なら問題ないんだろうけど、ライセンスつまりお金の関係で古いのをつかっているのでしょうがない。

(追記: 2007bでもimreadalltiffを使うと読込みが早いことに気付いた。実際に必要なのは1枚おきなので半分しか読まなくていいんだけど、そ れでも全部読んでからスライスして入らないフレームを捨てた方が断然はやい。imreadは無駄なオーバーヘッドがやたらあるらしいのでおそいらしい。)

むかしだったら、簡単に諦めがつくが、今となるとPythonだったらPILあたりをつかって簡単にできそうと思ってしまうのでわざわざ古いMATLABを使うのがほんとにベターなのだろうかと思ってしまう。Pythonのコード渡されてもこまるだろうから、同僚とコードをシェアすることができるのが唯一の利点になりつつあるな。xkcdのこれを思い出した。

« 今日のxkcd | トップページ | 西大伍 代表初選出!!! »

Python」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1169291/40161526

この記事へのトラックバック一覧です: imfinfoおせー。MATLAB2007b。:

« 今日のxkcd | トップページ | 西大伍 代表初選出!!! »

広告欄


やっつけタイムライン

広告欄

はてブ

人目の訪問です。

  • follow us in feedly

    かなり更新が不定期なため、RSSリーダーをオススメします。現在Feedlyに122人登録頂いています。多謝!RSSを表示

    ブログランキング用 にほんブログ村 IT技術ブログ Pythonへ ブログランキングならblogram






    Jenny Mayhem
2017年9月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

IT技術注目記事

無料ブログはココログ