У меня возникли проблемы с кодом, который я пишу, я пытаюсь сделать операцию bwlabel
на C++. И у меня проблемы с освобождением памяти, я не знаю, почему, потому что я попытался выполнить документацию в the OpenCV tutorials. Кажется, проблема с переменной refcount
собственной переменной Mat
.IplImage to Mat refcount
Вот мой код:
void VideoSeg::bwlabel(IplImage *srce, IplImage *out)
{
namedWindow("wndNameOut", CV_GUI_NORMAL);
cvConvertScale(srce,srce,255.);
Ptr<IplImage> srcx = srce;
Mat src(srcx);
imshow("wndNameOut", src); //The image is succesfully plotted
SimpleBlobDetector blobDetector(params);
blobDetector.create("SimpleBlob");
blobDetector.detect(src, keyPoints); // The problem appears in this line
for(int i=0; i<keyPoints.size(); i++)
{
cv::floodFill(src,keyPoints[i].pt, Scalar::all((i+1)*255/(keyPoints.size()+1)));
}
IplImage outx = src;
//http://docs.opencv.org/doc/tutorials/core/interoperability_with_OpenCV_1/interoperability_with_OpenCV_1.html
(*out) = outx;
cout << "Keypoints " << keyPoints.size() << endl;
}
Спасибо, ваш ответ @Alexandre Bizeau, я знаю, что я смешиваю функции разных версий opencv, но я не могу это изменить. Проблема, которую я получаю, - проблема памяти, когда код достигает той строки, которую я обозначил раньше. –
Неудачное утверждение OpenCV? Нарушение памяти? Утечка памяти ? – Vuwox
это ошибка, которую я получаю Необработанное исключение в 0x7543c41f в Online_video_segmenter.exe: исключение Microsoft C++: cv :: Исключение в ячейке памяти 0x0013da54 .. –