- 締切済み
C言語 極座標変換
C言語で画像を極座標変換するソースコードをおしえていただけないでしょうか。512*512 32bitグレースケール(float)画像です。C初心者なので難しくて困っています。よろしくおねがいいたします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- _--_1l1_1_
- ベストアンサー率67% (102/152)
単純に考えれば、 r = sqrt( (x * x) + (y * y) ); θ= atan2(x, -y); 中心座標を合わせることとか、(x,y)=(0,0)の場合とかも考えなければならない。 あと、rとθが実数となってしまうので、取り組んでいる問題によっては、rとθを整数に合わせるように補完処理が必要かも。
- kmee
- ベストアンサー率55% (1857/3366)
OpenCVについて。 RAWデータでうまくいかないのは、cvLoadImageがRAWデータに対応していないからです。 ・cvCreateImageでIplImageを新規作成 →各画素にRAWデータから読み込んだ値を設定 と、cvLoadImageに相当する操作をすれば、あとはサンプルのがそのまま使えると思いますが。
- yama1718
- ベストアンサー率41% (670/1618)
画像を極座標変換って、画像を回転したいのでしょうか? "画像" "回転" "ソース" "アルゴリズム" などの語句で検索すると色々見つかります。 http://homepage2.nifty.com/tsugu/sotuken/rotation/ http://msdn.microsoft.com/ja-jp/academic/cc998606 http://www.interq.or.jp/ox/pokumura/extreme/graphic/2.htm http://www.groovy-number.com/java/sample/ImageRotation.html ここで、C言語まで検索条件に加えると見つかるサイトが少なくなってしまいます。 C++,C#,Java,VB,Pascal など多少は他の言語も読めるようにして、 アルゴリズムを参考にするとか変換できれば、かなり応用できるようになりますね。
お礼
ありがとうごいます。行いたいのは回転しょりではなく、入力画像を中心が原点の極座標とみなして,出力画像の X 方向を角度,出力画像の Y 方向を長さに相当するように変換することです.512*512 32bitグレースケール(float)画像です。扱うのはヘッダ無しRAWデータです。例で言うと以下のサイト(OpenCV) http://opencv.jp/opencv-1.0.0/document/opencvref_cv_sampling.html にあるような実空間上の対数極座標変換です。ここでのopenCV関数(cvLogPolar)を用いるとjpg bmp tiff形式などは成功しましたが、RAWデータは扱えないコードのようです。 RAWデータのサンプルがなかなか見つけられずプログラマーのかたに願いした次第です。