使用这个原型函数:
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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)