3

プロジェクトの一部として、画像に対数極変換を適用する必要があります。OpenCV に次のようなクラスがあることがわかりました。

この目的のために cv::LogPolar_Interp と cv::LogPolar_Adjacent() を使用します。

問題は、それらを使用して次のような変換された画像を生成する方法がわからないことですこれです

パラメータをいじってみましたが、思い通りの結果が得られませんでした。

これは私の試みです:

    cv::LogPolar_Interp *LogPolar=new cv::LogPolar_Interp(inputFrame.cols,inputFrame.rows,cv::Point2i(inputFrame.cols/2,inputFrame.rows/2),120,20,CV_INTER_LINEAR, 1,117,1);

    logPolar_out=LogPolar->to_cartesian(inputFrame);

どうすればこれを入手できるか知っている人はいますか?ありがとう

4

1 に答える 1

4

最初に入力画像を皮質座標にマッピングしてから、デカルト座標に再マッピングする必要があります。また、隣接マッピングを利用する場合は、画像をグレースケールに変換する必要があります。

コードを次のように変更することで、探しているものが得られる可能性があります。

    cv::cvtColor(inputFrame,inputFrame,CV_BGR2GRAY);

    cv::LogPolar_Adjacent *logP=new cv::LogPolar_Adjacent(inputFrame.cols,inputFrame.rows,cv::Point2i(inputFrame.cols/2,inputFrame.rows/2));

    logPolar_out=logP->to_cortical(inputFrame);
    logPolar_out=logP->to_cartesian(logPolar_out);
    cv::imshow("Log Polar output",logPolar_out);
    cv::imshow("Log Polar input",inputFrame);
于 2013-03-09T23:14:33.790 に答える