確率的ハフ変換を使用して検出された行を保存したい。houghlines2 コマンドを使用すると、line_storage.line_storage というパラメーターがあり、この関数がその結果を格納する場所です。これは、CvMemoryStorage 構造体または N 行の行列のいずれかです。確率的ハフ変換モードでは、行列は N 行 x 1 列で、4 チャネル (CV_32FC4) である必要があります。線分の 2 つの終点 ( (x,y) を 2 回) を格納します。
このマトリックスを xml ファイルに保存しようとしましたが、project_test.exe の 0x75db9617 で Unhandled exception というエラーが発生しました: Microsoft C++ exception: cv::Exception at memory location 0x001bf0a0..マトリックスを保存するために使用したコードを以下に示します。私が何を間違えたのか説明してください。このマトリックスをxmlファイルに保存する方法を誰か教えてください。
#include "stdafx.h"
#include"cv.h"
#include"highgui\highgui.hpp"
#include<math.h>
#include"cxcore.h"
int main()
{
IplImage* source=cvLoadImage("image581.jpg");
CvSize imgsize=cvGetSize(source);
IplImage *detected=cvCreateImage(imgsize,8,1);
IplImage* imgBlue=cvCreateImage(imgsize,8,1);
IplImage* imgRed=cvCreateImage(imgsize,8,1);
IplImage* imgGreen=cvCreateImage(imgsize,8,1);
cvSplit(source,imgBlue,imgGreen,imgRed,NULL);
cvAnd(imgBlue,imgGreen,detected);
cvAnd(detected,imgRed,detected);
cvErode(detected,detected);
cvDilate(detected,detected);
cvThreshold(detected,detected,100,250,CV_THRESH_BINARY_INV);
CvMat* lines=cvCreateMat(50,1,CV_32FC4);
cvHoughLines2(detected,lines,CV_HOUGH_PROBABILISTIC,1,CV_PI/180,100,80,5);
cvNamedWindow("Source");
cvNamedWindow("Red");
cvNamedWindow("Final");
cvShowImage("Source",source);
cvShowImage("Red",imgRed);
cvShowImage("Final",detected);
cvWaitKey(0);
cvSave("Result-line.xml",lines);
cvDestroyWindow("Source");
cvDestroyWindow("Red");
cvDestroyWindow("Final");
cvReleaseMat(&lines);
return 0;
}