Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opencv 带IplImage的HoughLinesP_Opencv_Hough Transform_Iplimage - Fatal编程技术网

Opencv 带IplImage的HoughLinesP

Opencv 带IplImage的HoughLinesP,opencv,hough-transform,iplimage,Opencv,Hough Transform,Iplimage,我试图在图像上应用概率Hough变换,但遇到以下编译器错误: 从“IplImage*{akaIplImage*}类型的表达式初始化类型为“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

我试图在图像上应用概率Hough变换,但遇到以下编译器错误:

从“IplImage*{akaIplImage*}类型的表达式初始化类型为“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位单通道二进制源映像。该功能可以修改图像

我想,我对这里的指针处理感到困惑。 此外,如果我更改第一个参数:
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 );