草庐IT

python - Matplotlib:imshow 中的 set_data 对绘图没有影响

我有一个奇怪的错误,没有你的帮助我无法修复。在matplotlib中使用imshow设置图像后,即使我使用set_data方法更改它,它也始终保持不变。看看这个例子:importnumpyasnpfrommatplotlibimportpyplotaspltdefnewevent(event):haha[1,1]+=1img.set_data(haha)printimg.get_array()#thedataischangeatthispointplt.draw()haha=np.zeros((2,2))img=plt.imshow(haha)printimg.get_array()#

python - cv2::imshow 的参数

编辑:原始标题“convertnumpyarraytocvmat”是一个错误-OpenCV的错误消息不太有用而且我没有阅读文档!与OpenCV2、IPython现在默认使用NumPy数组。cvimage=cv2.imread("image.png")#usingOpenCV2type(cvimage)Out:numpy.ndarray#dtypeisuint8pltimage=plt.imread("image.png")#usingMatplotlibtype(pltimage)Out:numpy.ndarray#dtypeisfloatplt.imshow(cvimage)#wor

python - Matplotlib imshow/matshow 在图上显示值

我正在尝试在Matplotlib中使用imshow或matshow创建一个10x10网格。下面的函数将一个numpy数组作为输入,并绘制网格。但是,我希望数组中的值也显示在网格定义的单元格内。到目前为止,我找不到合适的方法来做到这一点。我可以使用plt.text在网格上放置东西,但这需要每个单元格的坐标,完全不方便。有没有更好的方法来完成我想要完成的事情?谢谢!注意:下面的代码还没有从数组中获取值,我只是在玩plt.text。importnumpyasnpimportmatplotlib.pyplotaspltfrommatplotlibimportcolorsboard=np.zer

python - 如何使用 pylab.imshow() 显示 np.array

此循环产生的np.array有4383行和6列。我尝试使用matplotlib(pylab)中的pylab.imshow()来显示数组,但没有成功。目标是创建数组的图像,其中颜色渐变表示数组值的大小。数组的每一行代表每天(4383天)湖水温度的深度变化。因此,目标是找出湖泊温度在深度和时间上的差异。TempLake=np.zeros((N+1,Nlayers))TempLake[0]=T0Q=np.zeros(N+1)Q[0]=0.0foriinxrange(N):Q[i+1]=Qn(HSR[i],TD[i],FW[i],TempLake[i][0])TempLake[i+1]=mai

python - 使用 matplotlib imshow 和 scatter 获得相同的子图大小

我正在尝试在同一图中绘制图像(使用matplotlib.imshow)和散点图。尝试这样做时,图像看起来比散点图小。小示例代码如下所示:importmatplotlib.pyplotaspltimportnumpyasnpimage=np.random.randint(100,200,(200,200))x=np.arange(0,10,0.1)y=np.sin(x)fig,(ax1,ax2)=plt.subplots(1,2)ax1.imshow(image)ax2.scatter(x,y)plt.show()其中给出了下图:如何让两个子盆具有相同的高度?(和我想的宽度)我试过使用g

python - imshow(img, cmap=cm.gray) 显示 128 值的白色

我正在从MatLab转向python并尝试使用imshow函数。我似乎无法理解为什么它没有将值128显示为灰色,因为我选择了cmap为灰度。它似乎对最高(128)和最低值使用灰度。我希望它对[0:255]使用灰度。我该怎么做? 最佳答案 使用vmin和vmax参数:plt.imshow(bg,cmap=plt.get_cmap('gray'),vmin=0,vmax=255)如果不指定vmin和vmax,plt.imshow会自动将其范围调整为数据的最小值和最大值。我不知道为所有imshow图设置默认vmin和vmax参数的方法,但

python - opencv.imshow 会导致 jupyter notebook 崩溃

我在google或stackoverflow上查看了其他问题,他们谈论的是在脚本中运行cv2.imshow,但我的代码在jupyternotebook中运行。这是我的配置:Ubuntu16.4x64python3.5opencv3.1.0我启动了一个jupyternotebook:这是我放在notebook中的代码:%pylabnotebookimportcv2cvim2disp=cv2.imread('data/home.jpg')cv2.imshow('HelloWorld',cvim2disp)cv2.waitKey()#imagewillnotshowuntilthisisca

c++ - 使用 imshow opencv 将图像拟合到屏幕上

我想在MacosX13'上使用opencv显示图像。图像大小为1920 × 1080。当我运行此代码时,我只看到图像的一部分。我需要使图像适合屏幕。#include#include#include#include#include#include"opencv2/opencv.hpp"#includeusingnamespacecv;usingnamespacestd;intmain(){Matimage=imread("/Users/rafikgouiaa/Qt/projects/MakeVideo/build-MakeVideo-Desktop_Qt_5_0_2_clang_64bi

python - 如果使用颜色图或 RGB 数组,matplotlib imshow 的绘图会有所不同

我遇到以下问题:我正在用显微镜保存16位tiff图像,我需要对其进行分析。我想用numpy和matplotlib来做这件事,但是当我想做一些简单的事情,比如用绿色绘制图像(我稍后需要叠加其他图像)时,它会失败。这是一个示例,当我尝试将图像绘制为RGB数组或使用默认的jet颜色图时。importnumpyasnpimportmatplotlib.pyplotaspltimportcv2imageName='image.tif'#imageasluminanceimg1=cv2.imread(imageName,-1)#imageasRGBarrayshape=(img1.shape[0]

python - Matplotlib imshow 缩放功能?

我有几张(27)以二维数组表示的图像,我正在使用imshow()查看它们。我需要放大每张图像中完全相同的位置。我知道我可以手动缩放,但这很乏味且不够精确。有没有办法以编程方式指定要显示的图像的特定部分而不是整个图像? 最佳答案 您可以使用plt.xlim和plt.ylim来设置要绘制的区域:importmatplotlib.pyplotaspltimportnumpyasnpdata=np.arange(9).reshape((3,3))plt.imshow(data)plt.xlim(0.5,1.5)plt.ylim(0.5,1.