Opencv 带IplImage的HoughLinesP
我试图在图像上应用概率Hough变换,但遇到以下编译器错误: 从“IplImage*{akaIplImage*}类型的表达式初始化类型为“cv::InputArray{aka const cv::U InputArray&}”的引用无效 /opt/ros/fuerte/include/opencv2/imgproc/imgproc.hpp:482:19:错误:传递“void cv::HoughLinesP(cv::InputArray,cv::OutputArray,double,double,int,double,double)”的参数1 HLP()的第一个参数是InputArray image:–8位单通道二进制源映像。该功能可以修改图像 我想,我对这里的指针处理感到困惑。 此外,如果我更改第一个参数:Opencv 带IplImage的HoughLinesP,opencv,hough-transform,iplimage,Opencv,Hough Transform,Iplimage,我试图在图像上应用概率Hough变换,但遇到以下编译器错误: 从“IplImage*{akaIplImage*}类型的表达式初始化类型为“cv::InputArray{aka const cv::U InputArray&}”的引用无效 /opt/ros/fuerte/include/opencv2/imgproc/imgproc.hpp:482:19:错误:传递“void cv::HoughLinesP(cv::InputArray,cv::OutputArray,double,double
HoughLinesP(*成像,线条,1,CV_PI/180,PHTdThresh,PHTdmin,PHTdmax)代码>
但在运行时,我的内核被上面的一行复制了:
OpenCV错误:cvarrToMat文件中的参数错误(未知数组类型)
/tmp/buildd/ros-fuerte-opencv2-2.4.2-1precise-20130312-1308/modules/core/src/matrix.cpp,
第697行在抛出的实例后调用terminate
“cv::Exception”什么()
/tmp/buildd/ros-fuerte-opencv2-2.4.2-1precise-20130312-1308/modules/core/src/matrix.cpp:697:错误:(-5)函数cvarrToMat中的数组类型未知
中止(堆芯转储)
警察说
。您可以假设可以始终使用Mat、std::vector、Matx、Vec或Scalar来代替InputArray/OutputArray
不能将IplImage作为输入阵列传递。您可以使用Mat(const IplImage*img,bool copyData=false)解决该问题代码>构造函数。您对HoughLinesP()的调用应该是:
HoughLinesP(Mat(imageD), lines, 1, CV_PI/180, PHTdThresh, PHTdmin, PHTdmax );
HoughLinesP(Mat(imageD), lines, 1, CV_PI/180, PHTdThresh, PHTdmin, PHTdmax );