jjzjj

Contours

全部标签

opencv - 去/OpenCV : Filter Contours

我正在使用thislibrary在Golang中编写OpenCV应用程序。我正在尝试做一些非常基本的事情,但似乎无法让它发挥作用。我只是想取一组轮廓,删除那些没有最小面积的轮廓,然后返回过滤后的结果。这是我的代码的当前状态://given*opencv.Seqandimage,drawallthecontoursfuncopencvDrawRectangles(img*opencv.IplImage,contours*opencv.Seq){forc:=contours;c!=nil;c=c.HNext(){rect:=opencv.BoundingRect(unsafe.Pointe

java - opencv/javacv : How to iterate over contours for shape identification?

我正在使用JavaCV开发一个形状识别项目,我找到了一些OpenCV代码来识别特定图像中的U形。我试图将它转换成JavaCV,但它没有给出相同的输出。你能帮我把这个OpenCV代码转换成JavaCV吗?这是OpenCV代码:importcv2importnumpyasnpimg=cv2.imread('sofud.jpg')gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)ret,thresh=cv2.threshold(gray,127,255,1)contours,hierarchy=cv2.findContours(thresh,cv2.RETR_

c++ - 如何使用opencv从图像中找到标尺位置?

我必须使用opencv从图像中找到标尺位置。我能够检测标尺的颜色(绿色)。如何从图像中读取所有像素并获取标尺的上下位置。voidfindrulerPosition(cv::Matimage,intindx){std::stringstreamss;//createastringstreamss>contours;findContours(hsvbw.clone(),contours,CV_RETR_EXTERNAL,CV_CHAIN_APPROX_SIMPLE);cv::Matdst=Mat::zeros(image.size(),image.type());drawContours(

c++ - 解释来自 OpenCV matchShapes() 的数字

我正在开发一个应用程序,我使用OpenCV的matchShapes()比较两个图像。我在Objective-C代码中实现的方法如下-(void)someMethod:(UIImage*)image:(UIImage*)temp{RNGrng(12345);cv::Matsrc_base,hsv_base;cv::Matsrc_test1,hsv_test1;src_base=[selfcvMatWithImage:image];src_test1=[selfcvMatWithImage:temp];intthresh=150;doubleans=0,result=0;Matimager

c++ - OpenCV 图像到黑白形状

我希望手图像是手的黑白形状。这是输入和所需输出的示例:使用阈值不会提供所需的输出,因为手内部的某些颜色与背景颜色相同。如何获得所需的输出? 最佳答案 Adaptivethreshold,findcontours,floodfill?基本上,自适应阈值会将您的图像变成黑白,但会根据每个像素周围的局部条件采用阈值级别-这样,您应该避免使用普通阈值时遇到的问题。事实上,我不确定为什么有人会想要使用正常阈值。如果这不起作用,另一种方法是找到图像中最大的轮廓,将其绘制到单独的矩阵上,然后用黑色填充其中的所有内容。(Floodfill就像MSP

c++ - OpenCV:findContours 函数错误

我正在使用2.4.3版的opencv,并尝试在canny边缘检测之后使用“findContours”函数,如下所示:structComponent{cv::RectboundingBox;doublearea;doublecircularity;}cv::vectorcomponents;cv::vectorhierarchy;cv::findContours(cannyEdges,components,hierarchy,CV_RETR_CCOMP,CV_CHAIN_APPROX_NONE);然后它会像这样为行“cv::findContours”抛出错误:OpenCVError:As

c++ - 在 OpenCV C/C++ 中只过滤掉一个轮廓

我正在尝试制作一个程序,使用基于Canny滤镜和轮廓查找功能的摄像机/网络摄像头来检测任何形状的物体。这是我的程序:intmain(intargc,char**argv){CvCapture*cam;CvMomentsmoments;CvMemStorage*storage=cvCreateMemStorage(0);CvSeq*contours=NULL;CvSeq*contours2=NULL;CvPoint2D32fcenter;inti;cam=cvCaptureFromCAM(0);if(cam==NULL){fprintf(stderr,"Cannotfindanycame

c++ - 如何使用 cv::findcontours 和层次结构查找内孔数

我需要在下图中找到内孔的数量。即我的最终要求是使用opencv中的轮廓层次单独检测和找到圆形黑洞的区域。无需使用任何其他算法。基于此链接UsinghierarchyinfindContours()inOpenCV?我试过了,但没用。有没有其他方法可以找到图像中的孔数?这里我附上了示例图像和代码。任何人都可以提出使用层次结构单独找到内部黑洞的想法。我在轮廓层次结构方面没有太多经验。提前致谢。我使用了opencvc++库。cv::MatInputImage=imread("NewImage.jpg");intErr;if(InputImage.empty()==1){InputImage.

c++ - OpenCV 指向位图处理的指针

我创建了一个从Delphi/Lazarus应用程序加载的用于轮廓检测的共享库。主应用程序传递一个指向位图的指针,以供库内的函数处理。这是库中的函数。参数“img”是指向我的位图的指针。extern"C"{voiddetect_contour(intimgWidth,intimgHeight,unsignedchar*img,int&x,int&y,int&w,int&h){Matthreshold_output;vector>contours;vectorhierarchy;Matsrc_gray;intthresh=100;intmax_thresh=255;RNGrng(12345

c++ - 提高车牌识别度

我正在从事基于车牌识别的学校项目。我在简单的电影上测试它:一辆汽车、静态相机等。这是它的样子:我的第一步是在这个框架上只找到汽车(我认为这对更“困难”的视频会有帮助):然后我搜索车牌。这是我的代码:std::vectorboundRect;cv::Matimg_gray,img_sobel,img_threshold,element;cvtColor(detectedMats[i],img_gray,CV_BGR2GRAY);cv::Sobel(img_gray,img_sobel,CV_8U,1,0,3,1,0,cv::BORDER_DEFAULT);cv::threshold(im