草庐IT

python - 将轮廓(MatplotLib 或 OpenCV)转换为与原始图像大小相同的图像

我用MatplotLib获得了这个轮廓:现在,我想将它用作普通的Python图像(PIL或数组),因为我想给它应用一个掩码(通过OpenCV获得)。问题是,使用MatplotLib时,带有轮廓的图像被调整大小,并添加了边距(对于轴,即使我不绘制轴),所以我从MatplotLib的图中获得的图像不适合使用OpenCV获得的掩码。我试图用OpenCV获得相同的轮廓,但我没有用cv2.FindContours和cv2.DrawContours函数获得任何结果(如果你知道如何这样做,请告诉我......在这个previoustopic可以看到原图和我想要的轮廓)另一种可能的解决方案是将使用Ma

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 - 在 Python 中提取图像的外部轮廓或剪影

我想提取图像的轮廓,我正在尝试使用MatplotLib的轮廓函数来实现。这是我的代码:fromPILimportImagefrompylabimport*#readimagetoarrayim=array(Image.open('HOJA.jpg').convert('L'))#createanewfigurefigure()#showcontourswithoriginupperleftcornercontour(im,origin='image')axis('equal')show()这是我的原始图片:这是我的结果:但我只想展示外部轮廓,轮廓。只是本例中的读取行。我该怎么做?我阅读

python - 使用 OpenCV (Python) 改进轮廓检测

我正在尝试从照片中识别卡片。我设法在理想的照片上做了我想做的事,但我现在很难在光线等略有不同的情况下应用相同的程序。所以问题是如何使以下轮廓检测更加稳健。我需要分享我的大部分代码,以便接受者能够制作感兴趣的图像,但我的问题仅与最后一个block和图像有关。importnumpyasnpimportcv2frommatplotlibimportpyplotaspltfrommpl_toolkits.axes_grid1importImageGridimportmathimg=cv2.imread('image.png')img=cv2.cvtColor(frame,cv2.COLOR_B

python - 在 Python 中为 findContours 使用层次结构

我实现了一个Python脚本来识别手绘中的形状。但是,脚本识别的形状比需要的多。这是一个示例图片:这是脚本的输出:我写的部分代码如下:defcreate_graph(vertex,color):forginrange(0,len(vertex)-1):foryinrange(0,len(vertex[0][0])-1):cv2.circle(newimg,(vertex[g][0][y],vertex[g][0][y+1]),3,(255,255,255),-1)cv2.line(newimg,(vertex[g][0][y],vertex[g][0][y+1]),(vertex[g+

python - 使用 Mayavi/Python 从数据中绘制 3D 等高线图

我想使用Mayavi以与本页第三个图(氢电子云模型)完全相同的方式绘制3D等高线图:http://www.sethanil.com/python-for-reseach/5我有一组数据点,它们是使用我自己的模型创建的,我想使用这些数据点。数据点存储在多维numpy数组中,如下所示:XYZV=[[1,2,3,4],[6,7,8,9],...[4,5,6,7]]数据点不是均匀分布在XYZ空间中,也不是按任何特定顺序存储的。我认为该示例使用meshgrid来生成数据点——我查过这个但完全不明白。任何帮助将不胜感激?(来源:sethanil.com) 最佳答案

python - 从 Pandas Groupby Dataframe 创建等高线图

我有以下Pandas数据框:In[66]:hdf.size()Out[66]:ab00.0210040.11199030.21865790.34173490.42027230.51009060.6563860.760800.835960.923911.019631.117301.216631.316141.41309...1860.2150.390.4210.541870.230.3100.4220.5101880.0110.1190.2200.3130.470.550.61Length:4572,dtype:int64你看,a从0...188和b在每个组中从某个值到某个值。并且作为指

Python OpenCV 轮廓树层次结构

我正在尝试实现找到的算法here在带有OpenCV的Python中。我正在尝试实现算法的一部分,根据它们具有的内部边界的数量删除不相关的边缘边界。如果当前边边界恰好有一个或两个内边边界,则可以忽略内边界如果当前边边界有两个以上的内边边界,可以忽略我无法确定从图像中提取的轮廓的树结构。我当前的来源:importcv2#Loadtheimageimg=cv2.imread('test.png')cv2.copyMakeBorder(img,50,50,50,50,cv2.BORDER_CONSTANT,img,(255,255,255))#Splitouteachchannelblue=c

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 - matplotlib 等高线图 : proportional colorbar levels in logarithmic scale

是否可以像下图那样使用对数刻度的颜色条级别?这是一些可以实现的示例代码:importmatplotlib.pyplotaspltimportnumpyasnpfrommatplotlib.colorsimportLogNormdelta=0.025x=y=np.arange(0,3.01,delta)X,Y=np.meshgrid(x,y)Z1=plt.mlab.bivariate_normal(X,Y,1.0,1.0,0.0,0.0)Z2=plt.mlab.bivariate_normal(X,Y,1.5,0.5,1,1)Z=1e6*(Z1*Z2)fig=plt.figure()ax