opencv python教程简书,opencv-python是什么

  opencv python教程简书,opencv-python是什么

  这篇文章的标题是https://docs.opencv.org/3.4/D4/d73/tutorial _ py _等高线_ begin.html,原名是等高线:入门。

  了解轮廓是什么,并学习如何找到轮廓,如何绘制轮廓和其他相关功能。Cv.findcontours(,cv.drawContours))什么是轮廓?等高线,或称“轮廓”,可以简单地解释为连接边界上所有连续点的曲线。轮廓对于形状分析、物体识别和检测非常有用。

  注意事项:

  为了提高准确性,请使用二进制图像。因此,在找到轮廓之前,必须从OpenCV 3.2应用阈值或canny边缘检测。findContours))方法不修改原始图像,而是将修改后的图像作为三个返回参数中的第一个返回给OpenCV,这样轮廓图像就可以从黑色背景中找到白色物体。所以,请记住,物体应该是白色的,黑色背景的例子如下。

  importnumpyasnpimportcv 2 ASC vim=cv . im read( test.jpg )im gray=cv . CVT color(im,cv。COLOR_BGR2GRAY ) ret,TTT层次=cv.find contours (thresh,cv . retr _ tree . cv . chain _ approximate _ simple)cv . find其中contours是原图的所有轮廓。每个轮廓都是一个Numpy数组,由对象边界点的(x,y)坐标组成。

  注意:

  在OpenCV2中,cv.findcontours()的返回值只有轮廓和层次。如何绘制轮廓使用cv.drawContours来绘制轮廓。Cv.drawContours可以通过指定形状的边界点(坐标)来绘制任何形状。第一个参数是原始图像,第二个参数是包含所有轮廓(的坐标)的Python列表,第三个参数是轮廓索引。只有当你想画一个单一的轮廓的时候才有用。如果要画所有轮廓,请传-1。剩下的参数就是颜色,粗细等。

  比如如下图。

  #在一个图像中绘制所有轮廓cv.drawcontours(img,contours,-1,)0,255,0),3)。例如,从0开始索引第四个轮廓cv.drawcontours) img,以下方法很有用:CNT=Contours [4] CV。DrawContours (img,[cnt],0,)255,0),3)轮廓逼近法这是cv.findContours)法的第一种方法。实践

  你刚才说返回的轮廓存储了形状边界的(x,y)坐标。需要存储所有坐标吗?这是由轮廓近似方法指定的。

  如果cv。通过CHAIN_APPROX_NONE _ none,所有边界点(的坐标)将被存储。但是你真的需要所有的点吗?比如想求一条直线的轮廓,是不是直线上的所有点都要代表这条直线?其实我们只有两点。这就是cv。CHAIN_APPROX_SIMPLE _ simple可以,因为它消除了所有冗余并压缩了轮廓,从而节省了内存。

  下面的框图展示了这项技术。图表显示了cv的结果。chain _ approximate _ none,右图是cv的结果。chain _ approximate _ simple,可见右图所示方法大大节省了内存!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: