(Probabilistic Hough Transform を実装する HoughLinesBinary メソッドを使用する代わりに) 標準の Hough Transformation を使用する必要があり、HoughLinesBinary メソッドのカスタム バージョンを作成してそれを試みました。
using (MemStorage stor = new MemStorage())
{
IntPtr lines = CvInvoke.cvHoughLines2(canny.Ptr, stor.Ptr, Emgu.CV.CvEnum.HOUGH_TYPE.CV_HOUGH_STANDARD, rhoResolution, (thetaResolution*Math.PI)/180, threshold, 0, 0);
Seq<MCvMat> segments = new Seq<MCvMat>(lines, stor);
List<MCvMat> lineslist = segments.ToList();
foreach(MCvMat line in lineslist)
{
//Process lines: (rho, theta)
}
}
私の問題は、返されるシーケンスの型がわからないことです。CvMat* が OpenCV で使用されているというドキュメントを読んでいるため、MCvMat である必要があると思います。これには、STANDARD の場合、「マトリックスは CV_32FC2 タイプでなければならない (作成されるシーケンスは次のようになります)」と記載されています。
STANDARD ハフ ライン (つまり、ローとシータの情報を与える各ラインの 2x1 ベクトル) から正しい出力データを返して処理するために何をする必要があるかは不明です。
どんな助けでも大歓迎です。ありがとうございました
-サル