忍者ブログ
プログラミングのメモ書きです。日記も兼ねてます。
[835]  [834]  [833]  [832]  [831]  [830]  [829]  [828]  [827]  [826]  [825
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

昨日の続き。

C++とMATLABでタイムアタックしてみた。
条件として、1600x1200のJPEGファイルを読み込んだ状態でスタート。RGBをHSVに変換し、-10<H<10,S>60,V>60の範囲を抜き出す。

PCのスペックは
CPU AMD Athlon 64 X2 Dual 2.01GHz
RAM 960MB
C++コンパイラは、gcc ver 3.3.3
SDLは1.12.10
MATLABは2007b
を使用。

で、結果

C++&SDL
0.325sec

MATLAB+手書きHSV
1.08sec

C++はええなぁ…
ちなみに、手書きHSVっていうのは、MATLAB標準のHSV変換関数だと2秒かかるようになるから。
ただし、相当手抜き実装。
で、これ見た先生が「3倍高速化すればいいんだな?ソースと対象の画像くれ」ってことで、高速化チャレンジするようです。

実験に使ったソース類は続きのところに…

MATLAB用ソース
%speed.m
name='2009_05_14/photo (0).jpg';
E=imread(name);

tic%ストップウオッチ開始
E=int16(E);
%HSV変換
V=max(E,[],3);
R=E(:,:,1);
G=E(:,:,2);
B=E(:,:,3);
minRGB=min(E,[],3);
dRGB=(V-minRGB);
S=255*dRGB./V;
H=60*(int16(V==R).*(B-G)+int16(V==G).*((R-B)+2.*dRGB)+int16(V==B).*((G-R)+4.*dRGB))./dRGB;
%判定
Mask=((H>-10).*(H<10)+(H>350)).*(V>60).*(S>60);
toc%ストップウオッチ停止
imshow(Mask);%判定結果表示
%ここまで

C++用のソースは、ここ(zip)から。SDL,SDL_image(jpeg有効)必須です。ReadMeはないですけど、makeしてTest.exe実行してください。自己責任で
諸事情により、画像はついていないので、適当に探して使ってください。
PR
この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
この記事へのトラックバック
この記事にトラックバックする:
&lt;&lt; 無題 HOME 無題 &gt;&gt;
カレンダー
04 2024/05 06
S M T W T F S
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 31
最新コメント
[01/09 ⅠAⅤAⅨUの医学部再受験]
[04/21 ほ@神宮寺]
[03/26 クドっち]
[03/23 なつめぐ]
[03/23 なつめぐ]
最新トラックバック
プロフィール
HN:
まっちゃん
性別:
非公開
ブログ内検索
アクセス解析
カウンター
忍者ブログ [PR]