草庐IT

轮廓仪

全部标签

python - 如何使用 OpenCV Python 显示图像的轮廓?

我从官方documentation中遵循了本教程.我运行他们的代码:importnumpyasnpimportcv2im=cv2.imread('test.jpg')imgray=cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)ret,thresh=cv2.threshold(imgray,127,255,0)contours,hierarchy=cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)cv2.drawContours(img,contours,-1,(0,255,0),3)没关系

python - 来自 xyz 数据 : griddata invalid index 的 Matplotlib 轮廓

我正在尝试使用具有以下格式的文件的matplotlib绘制等高线图:x1y1z1x2y2z2等等我可以用numpy.loadtxt加载它来获取向量。到目前为止,没有问题。我读这篇文章是为了学习如何绘图,并且可以通过复制粘贴来复制它,所以我确定我的安装没有任何问题:http://matplotlib.org/examples/pylab_examples/griddata_demo.html我知道我必须将x和y作为向量输入,将z作为数组输入,这可以使用griddata完成。这也是我在这个网站上找到的。文档说:zi=griddata(x,y,z,xi,yi)fitsasurfaceofth

python - 使用 python 在 opencv 中创建自己的轮廓

我有一组对象的边界点。我想使用opencv作为轮廓来绘制它。我不知道如何将我的点转换为轮廓表示。对followingcall得到的相同轮廓表示contours,_=cv2.findContours(image,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)有什么想法吗?谢谢 最佳答案 通过查看轮廓的格式,我认为像这样的东西应该足够了:contours=[numpy.array([[1,1],[10,50],[50,50]],dtype=numpy.int32),numpy.array([[99,99],

python - 如何在 Python 中的 Matplotlib 线上绘制外边缘的轮廓?

我正在尝试在networkx边缘上绘制轮廓(linestyle=":")。我似乎无法弄清楚如何对matplotlibpatch对象执行此操作?现在有人知道如何操作这些补丁对象来绘制这些“边缘”的轮廓吗?如果这不可能,有人知道如何获取线数据以使用ax.plot(x,y,linestyle=":")分别做这个?importnetworkxasnximportnumpyasnpfromcollectionsimport*#GraphdataG={'y1':OrderedDict([('y2',OrderedDict([('weight',0.8688325076457851)])),(1,O

python - 如何在 Python OpenCV 中删除轮廓内部的轮廓?

OpenCVinPython提供如下代码:regions,hierarchy=cv2.findContours(binary_image,cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE)forregioninregions:x,y,w,h=cv2.boundingRect(region)cv2.rectangle(image,(x,y),(x+w,y+h),(0,255,0),1)这给出了轮廓内的一些轮廓。如何在Python中删除它们? 最佳答案 为此,您应该看看thistutorial关于如何使用fin

python - 使用python检查opencv中的轮廓区域

我尝试在新的pythonapi(cv2)中使用checkContour()函数,如果我使用findContours创建要检查的轮廓,它确实有效,例如contours,hierarchy=cv2.findContours(imgGray,cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE)cv2.contourArea(contours[0])但是,当我自己创建轮廓时,以下代码不起作用contour=numpy.array([[0,0],[10,0],[10,10],[5,4]])area=cv2.contourArea(contour)并返回“错误:(-215)

python - 在 Python 中使用 OpenCV 访问轮廓边界内的像素值

我在Python2.7.9上使用OpenCV3.0.0。我正在尝试跟踪具有静止背景的视频中的对象,并估计其某些属性。由于图像中可能有多个移动对象,我希望能够区分它们并在视频的其余帧中单独跟踪它们。我认为我可以做到这一点的一种方法是将图像转换为二进制,获取Blob(在本例中为跟踪对象)的轮廓并获取对象边界的坐标。然后我可以转到灰度图像中的这些边界坐标,获取该边界包围的像素强度,并在其他帧中跟踪此颜色梯度/像素强度。这样,我可以将两个对象彼此分开,这样它们就不会被视为下一帧中的新对象。我有轮廓边界坐标,但我不知道如何检索该边界内的像素强度。有人可以帮我吗?谢谢!

python - 阻止 pyplot.contour 沿不连续点绘制轮廓

我有一个坐标变换的二维map。每个点的数据是原始坐标系中的轴角,从0到360。我正在尝试使用pyplot.contour来绘制恒定角度的线,例如45度。轮廓沿着两个极点之间的45度角线出现,但轮廓还有一个附加部分沿着0/360不连续点连接两个极点。这形成了一条非常参差不齐的丑陋线条,因为它基本上只是跟踪一侧数字接近0而另一侧数字接近360的像素。例子:这是使用全彩色贴图的图像:您可以看到左侧蓝色/红色曲线的不连续性。一侧是360度,另一侧是0度。绘制等高线时,我得到:请注意,所有等高线都连接两个极点,但即使我没有绘制0度等高线,所有其他等高线也沿着0度不连续点(因为pyplot认为如果

python - 为什么 OpenCV 中的 drawcontours 不填充图像边缘的轮廓?

编辑:我通过向图像添加一个2位帧绕过了这个问题,然后使用我的代码,最后裁剪图像以删除多余的帧。这是一个丑陋的解决方案,但它确实有效!我遇到了一个问题,我不确定这是一个错误还是我缺乏经验。我会尽可能清楚地总结它:我得到一个二值图像,其中包含我要分析的彩色图像的轮廓(白色像素是我的算法检测到的轮廓的周长,其余为黑色)。图像非常复杂,因为我要检测的对象完全填满了图像(没有“背景”)。我对该图像使用findcontours:contours,hierarchy=cv2.findContours(image,cv2.RETR_CCOMP,cv2.CHAIN_APPROX_NONE)然后“for”

python - 我可以给 matplotlib 绘图函数中的一条线添加边框(轮廓)吗?

我尝试:points=[...]axe.plot([i[0]foriinpoints],[i[1]foriinpoints],linestyle='-',linewidth=10,color='black',markeredgewidth=2,markeredgecolor='green')但我只得到一个黑色轮廓。我怎样才能达到下图所示的效果? 最佳答案 如果您绘制一条线两次,它不会出现在图例中。使用patheffects确实更好。这里有两个简单的例子:importmatplotlib.pyplotaspltimportnumpya