草庐IT

contours

全部标签

python - 胡矩比较

我尝试比较两幅图像并使用Hu矩来比较从这些图像中提取的轮廓:https://docs.google.com/file/d/0ByS6Z5WRz-h2WHEzNnJucDlRR2s/edit和https://docs.google.com/file/d/0ByS6Z5WRz-h2VnZyVWRRWEFva0k/edit第二张图片与第一张图片相同,只是它旋转了,我预计结果相同。它们有点不同。右边的Humoments标志(第一张图片):[[6.82589151e-01][2.06816713e-01][1.09088295e-01][5.30020870e-03][-5.85888607e-

python - 为什么 pyplot.contour() 要求 Z 是二维数组?

matplotlib.pyplot.contour()函数采用3个输入数组X、Y和Z。数组X和Y指定点的x和y坐标,而Z指定感兴趣函数在点数。我知道np.meshgrid()可以轻松生成用作contour()参数的数组:X=np.arange(0,5,0.01)Y=np.arange(0,3,0.01)X_grid,Y_grid=np.meshgrid(X,Y)Z_grid=X_grid**2+Y_grid**2plt.contour(X_grid,Y_grid,Z_grid)#Worksfine这很好用。方便的是,这也很好用:plt.contour(X,Y,Z_grid)#Works

python opencv - Blob 检测或圆检测

我在检测圆形区域时遇到问题。我用opencv的HoughCircles函数试过了。然而,即使图像非常相似,函数的参数也必须不同才能检测到圆圈。我尝试的另一种方法是遍历每个像素并检查当前像素是否为白色。如果是这种情况,则检查该区域中是否存在Blob对象(到Blob中心的距离小于阈值)。如果存在,则将像素附加到blob,如果不存在,则创建一个新的blob。这也没有正常工作。有谁知道我如何才能使这项工作(90%检测)?我附上了一张示例图片和另一张我标记圆圈的图片。谢谢!更新:感谢您到目前为止的帮助!这是我获取轮廓并按区域过滤它们的代码:im=cv2.imread('extract_blue.

python opencv - Blob 检测或圆检测

我在检测圆形区域时遇到问题。我用opencv的HoughCircles函数试过了。然而,即使图像非常相似,函数的参数也必须不同才能检测到圆圈。我尝试的另一种方法是遍历每个像素并检查当前像素是否为白色。如果是这种情况,则检查该区域中是否存在Blob对象(到Blob中心的距离小于阈值)。如果存在,则将像素附加到blob,如果不存在,则创建一个新的blob。这也没有正常工作。有谁知道我如何才能使这项工作(90%检测)?我附上了一张示例图片和另一张我标记圆圈的图片。谢谢!更新:感谢您到目前为止的帮助!这是我获取轮廓并按区域过滤它们的代码:im=cv2.imread('extract_blue.

Halcon 直线拟合fit_line_contour_xld详解

fit_line_contour_xld原型fit_line_contour_xld(Contours::Algorithm,MaxNumPoints,ClippingEndPoints,Iterations,ClippingFactor:RowBegin,ColBegin,RowEnd,ColEnd,Nr,Nc,Dist)功能根据XLD轮廓拟合直线参数列表Contours(input_object):输入的XLD轮廓Algorithm(input_control):直线拟合算法(‘drop’,‘gauss’,‘huber’,‘regression’,‘tukey’)MaxNumPoints(

c++ - 使用 OpenCV 凸包和凸缺陷函数的手指跟踪/计数

我一直在使用OpenCV和ConvexHull和ConvexityDefects方法编写基本的手/手指跟踪代码。基本上,我能够创建手部的轮廓。我现在需要能够数出手指的数量。我知道ConvexHull的起点和终点是指尖,但我不确定如何计算它们以及如何通过在它们上画圈或其他东西来突出它们。我希望我的代码执行类似于this的操作.到目前为止,这是我的代码的示例部分:cvFindContours(hsv_mask,storage,&contours,sizeof(CvContour),CV_RETR_LIST,CV_CHAIN_APPROX_SIMPLE,cvPoint(0,0));CvSeq

c++ - 使用 OpenCV 凸包和凸缺陷函数的手指跟踪/计数

我一直在使用OpenCV和ConvexHull和ConvexityDefects方法编写基本的手/手指跟踪代码。基本上,我能够创建手部的轮廓。我现在需要能够数出手指的数量。我知道ConvexHull的起点和终点是指尖,但我不确定如何计算它们以及如何通过在它们上画圈或其他东西来突出它们。我希望我的代码执行类似于this的操作.到目前为止,这是我的代码的示例部分:cvFindContours(hsv_mask,storage,&contours,sizeof(CvContour),CV_RETR_LIST,CV_CHAIN_APPROX_SIMPLE,cvPoint(0,0));CvSeq

c++ - 通过迭代自适应阈值和形状分析检测圆形对象的集群

我一直在开发一个应用程序来计算圆形物体,例如图片中的细菌菌落。物体通常与背景完全不同,这一点很容易做到这一点。然而,很少有困难使分析变得棘手:背景会呈现渐变和快速的强度变化。在容器的边缘,对象将是椭圆形而不是圆形。物体的边缘有时会比较模糊。对象将聚集在一起。对象可以非常小(直径6像素)最终,算法将被那些对图像分析没有深入了解的人使用(通过GUI),因此参数必须直观且很少。该问题已在科学文献中多次解决并“解决”,例如使用循环霍夫变换或分水岭方法,但我从未对结果感到满意。所描述的一种简单方法是通过自适应阈值处理获得前景,并使用距离变换分割(如我在thispost中所述)聚类对象。我已经成功

c++ - 通过迭代自适应阈值和形状分析检测圆形对象的集群

我一直在开发一个应用程序来计算圆形物体,例如图片中的细菌菌落。物体通常与背景完全不同,这一点很容易做到这一点。然而,很少有困难使分析变得棘手:背景会呈现渐变和快速的强度变化。在容器的边缘,对象将是椭圆形而不是圆形。物体的边缘有时会比较模糊。对象将聚集在一起。对象可以非常小(直径6像素)最终,算法将被那些对图像分析没有深入了解的人使用(通过GUI),因此参数必须直观且很少。该问题已在科学文献中多次解决并“解决”,例如使用循环霍夫变换或分水岭方法,但我从未对结果感到满意。所描述的一种简单方法是通过自适应阈值处理获得前景,并使用距离变换分割(如我在thispost中所述)聚类对象。我已经成功

Python:从 matplotlib.pyplot.contour() 中查找等高线

我正在尝试查找(但不绘制!)某些数据的等高线:frompprintimportpprintimportmatplotlib.pyplotz=[[0.350087,0.0590954,0.002165],[0.144522,0.885409,0.378515],[0.027956,0.777996,0.602663],[0.138367,0.182499,0.460879],[0.357434,0.297271,0.587715]]cn=matplotlib.pyplot.contour(z)我知道cn包含我想要的轮廓线,但我似乎无法得到给他们。我已经尝试了几件事:printdir(cn