首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HoughLinesP与IplImage

HoughLinesP与IplImage
EN

Stack Overflow用户
提问于 2013-11-19 15:16:26
回答 1查看 2.5K关注 0票数 0

我试图在图像上应用概率Hough变换,但是我得到了这个编译器错误:

类型‘cv::InputArray {aka const cv::_InputArray&}’的引用从“IplImage* {aka _IplImage*}”表达式中初始化无效 /opt/ros/fuerte/include/opencv2/imgproc/imgproc.hpp:482:19:错误:在传递‘void::HoughLinesP(cv::InputArray,cv::OutputArray,double,double,int,double,double,double)的参数1时

代码语言:javascript
复制
    IplImage *imageD, *src; //src -is read from a *.png and preprocessed  
    ...
    imgageO=imageD = cvCreateImage( cvSize(src->width,src->height), 8, 1 );
    cvCopy(src, imageO);
    ...
    HoughLinesP(imageD, lines, 1, CV_PI/180, PHTdThresh, PHTdmin, PHTdmax );

HLP()的第一个参数是InputArray图像:-8位,单通道二进制源图像.该图像可由该函数修改。

我想,我和这里的指针处理混淆了。此外,如果我更改第一个参数:HoughLinesP(*imageD, lines, 1, CV_PI/180, PHTdThresh, PHTdmin, PHTdmax );

而不是编译,但在运行时,我得到了上面一行的核心欺骗:

/tmp/buildd/ros-fuerte-opencv2-2.4.2-1precise-20130312-1308/modules/core/src/matrix.cpp,错误: cvarrToMat中的错误参数(未知数组类型),文件OpenCV第697行在抛出函数cvarrToMat中的‘cv::OpenCV’OpenCV():OpenCV错误:(-5)未知数组类型后终止调用。 中止(核心倾弃)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-19 15:30:02

OpenCV文档

。您可以假设,可以始终使用Mat、std::vector<>、Matx<>、Vec<>或Scalar来代替InputArray/OutputArray

不能将IplImage作为InputArray传递。您可以使用Mat(const IplImage* img, bool copyData=false);构造函数解决这个问题。您对HoughLinesP()的调用应该是:

代码语言:javascript
复制
    HoughLinesP(Mat(imageD), lines, 1, CV_PI/180, PHTdThresh, PHTdmin, PHTdmax );
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20075245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档