c – 帮助使用扩张功能OpenCV

c – 帮助使用扩张功能OpenCV,第1张

概述在下面的代码中我想使用dilate函数,但我不知道如何将Mat类转换为InputArray和OutputArray.你能帮助我吗? 使用这个原型函数: void dilate(InputArray src, OutputArray dst, InputArray kernel, Point anchor=Point(-1,-1), int iterations=1, int borderType= 在下面的代码中我想使用dilate函数,但我不知道如何将Mat类转换为inputArray和OutputArray.你能帮助我吗?

使用这个原型函数:

voID dilate(inputArray src,OutputArray dst,inputArray kernel,Point anchor=Point(-1,-1),int iterations=1,int borderType=border_CONSTANT,const Scalar& borderValue=morphologyDefaultborderValue() )

这是我的代码:

#include "opencv2/opencv.hpp"using namespace cv;int main(int,char**){    Mat edges;    VIDeoCapture cap(0); // open the default camera    if(!cap.isOpened())  // check if we succeeded        return -1;    for(;;)    {        Mat frame;        cap >> frame; // get a new frame from camera        cvtcolor(frame,edges,CV_BGR2GRAY);        GaussianBlur(edges,Size(7,7),1.5,1.5);        //dilate(edges,NulL);        Canny(edges,30,3);        imshow("edges",frame);        if(waitKey(30) >= 0) break;    }    // the camera will be deinitialized automatically in VIDeoCapture destructor    return 0;}
解决方法 Stack Overflow上有一些例子,like this:
int erosion_size = 6;   cv::Mat element = cv::getStructuringElement(cv::MORPH_CROSS,cv::Size(2 * erosion_size + 1,2 * erosion_size + 1),cv::Point(erosion_size,erosion_size) );cv::dilate(edges,element);

Or this:

cv::dilate(edges,cv::Mat(),cv::Point(-1,-1));
总结

以上是内存溢出为你收集整理的c – 帮助使用扩张功能OpenCV全部内容,希望文章能够帮你解决c – 帮助使用扩张功能OpenCV所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1237267.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存