トップページ > プログラム > 2014年08月22日 > HUPln6ac

書き込み順位&時間帯一覧

37 位/181 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000001000100000002



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
214
MATLABプログラミング 質問箱 その4

書き込みレス一覧

MATLABプログラミング 質問箱 その4
214 :デフォルトの名無しさん[sage]:2014/08/22(金) 12:01:14.93 ID:HUPln6ac
scilab+SIVPで画像処理をしてるけど処理が激遅で困ってます
┌──┐
│ ○ │→┌───┐
└──┘  └───┘
↑みたいな480×640の画像で、真ん中の円の部分を長方形の画像に展開したいんですが、
1ドットずつ長方形の枠に色情報を移すようなループ処理でやってるせいか超遅い・・・

円の半径は480/2の240として、円の最外周から30ドットくらいまでを長方形の画像に
展開するのに高速で終わるようにするにはどうしたら良いでしょうか。
今は下みたいな処理をしています。

MARUは480*640*3の配列で、SIKAKUは30*1500*3の配列
MARUで指定する座標の色情報を一つずつSIKAKUの配列に入れて行く
r=240 //半径r
while(r>210)  //半径の最大から最小値まで繰り返す(行置換)
  a=360    //360°ぐるりと回りながらドット取得
  j=1     //長方形展開後の色情報を格納する列番号
  while(a>0)  //角度を360から0まで繰り返す(列置換)
    x=round(px+r*cosd(a))  //○画像の抽出したいドットの横方向座標取得
    y=round(py+r*sind(a))  //○画像の抽出したいドットの縦方向座標取得
    SIKAKU(i,j,1)=MARU(y,x,1)  //R・G・Bそれぞれ円の座標の色情報を
    SIKAKU(i,j,2)=MARU(y,x,2)  //長方形の画像の指定する場所に格納
    SIKAKU(i,j,3)=MARU(y,x,3)
    j=j+1 //長方形展開後の次の色情報を格納する場所の列指定
    a=a-0.24 //0.24°角度を移動 (半径480ドットの円の円周≒1500ドット、360/1500=0.24)
  end
  r=r-1 //最外周から1ドットずつ内側に移動
  i=i+1 //長方形の画像の次の色情報を格納する場所の行指定
end

この後さらに複数の長方形に展開した画像を結合して長い円筒にカメラを突っ込んだような画像から、
円筒を唐竹割りしたような展開画像を作りたいけど良い方法有りますでしょうか。
MATLABプログラミング 質問箱 その4
216 :214[sage]:2014/08/22(金) 16:30:56.24 ID:HUPln6ac
まだループが有るけど大分早くなったので途中経過・・・
後は動画から連続する画像取得とその展開、展開画像の結合か・・・先は長い(´・ω・`)

i=1
r=240 //半径r
a=0:(360/1500):360
while(r>210)
  MARU_R=DR(round(py+r*sind(a)),round(px+r*cosd(a)))
  MARU_B=DG(round(py+r*sind(a)),round(px+r*cosd(a)))
  MARU_G=DB(round(py+r*sind(a)),round(px+r*cosd(a)))

  MARU_R=diag(MARU_R)'
  MARU_B=diag(MARU_B)'
  MARU_G=diag(MARU_G)'

  SIKAKU(i,ANS_yoko,1)=sum(MARU_R,'r')
  SIKAKU(i,ANS_yoko,2)=sum(MARU_B,'r')
  SIKAKU(i,ANS_yoko,3)=sum(MARU_G,'r')

  r=r-1
  i=i+1
end


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。