标签: imshow

Imshow:范围和方面

我正在编写一个软件系统,通过3D数据集可视化切片和投影.我正在使用matplotlib并专门imshow用于可视化我从分析代码中获取的图像缓冲区.

由于我想用绘图轴注释图像,我使用extent关键字imshow提供将图像缓冲区像素坐标映射到数据空间坐标系.

不幸的是,matplotlib不了解单位.说(以一个人为的例子)我想要绘制尺寸为的图像1000 m X 1 km.在这种情况下,范围将是类似的[0, 1000, 0, 1].即使图像阵列是方形的,由于extent关键字隐含的纵横比为1000,因此得到的绘图轴也具有1000的纵横比.

是否可以强制绘制宽高比,同时仍然使用extent关键字保留自动生成的主要刻度线和标签?

python matplotlib imshow

77
推荐指数
2
解决办法
10万
查看次数

Python xticks在子图中

如果我绘制一个imshow我可以使用的情节

fig, ax = plt.subplots()
ax.imshow(data)
plt.xticks( [4, 14, 24],  [5, 15, 25] )
Run Code Online (Sandbox Code Playgroud)

替换我的xtick标签.

现在,我正在imshow使用绘制12个地块

f, axarr = plt.subplots(4, 3)
axarr[i, j].imshow(data)
Run Code Online (Sandbox Code Playgroud)

如何才能为这些子图之一更改我的xticks?我只能访问子图的轴axarr[i, j].我如何plt只访问一个特定的子图?

python matplotlib imshow

60
推荐指数
2
解决办法
14万
查看次数

matplotlib imshow - 默认颜色标准化

使用时我的色彩图始终存在问题imshow,有些颜色似乎变黑了.我终于意识到,imshow默认情况下,似乎规范化了我给它的浮点值矩阵.

我本来期望一个数组,例如[[0,0.25],[0.5,0.75]]从地图中显示适当的颜色,对应于那些绝对值,但0.75将被解释为1.在极端情况下,N×N数组为0.2(例如),只产生一个大的黑色方块,而不是人们所期望的0.2对应于色彩图(可能是20%的灰色).

有没有办法防止这种行为?当自定义颜色贴图具有许多不连续性时,特别令人讨厌,尺度的微小变化可能导致所有颜色完全改变.

python matplotlib normalization imshow

32
推荐指数
1
解决办法
4万
查看次数

OpenCV和Python - 图像太大而无法显示

我的图像是6400×3200,而我的屏幕是1280 x 800.因此,图像需要调整大小才能显示.我正在使用Python和OpenCV 2.4.9.根据OpenCV文档,

如果需要显示大于屏幕分辨率的图像,则需要在imshow之前调用namedWindow("",WINDOW_NORMAL).

这就是我正在做的,但图像不适合屏幕,只显示一部分,因为它太大了.我也试过cv2.resizeWindow,但它没有任何区别.

import cv2
cv2.namedWindow("output", cv2.WINDOW_NORMAL)        # Create window with freedom of dimensions
# cv2.resizeWindow("output", 400, 300)              # Resize window to specified dimensions
im = cv2.imread("earth.jpg")                        # Read image
cv2.imshow("output", im)                            # Show image
cv2.waitKey(0)                                      # Display the image infinitely until any keypress
Run Code Online (Sandbox Code Playgroud)

python opencv image imshow

32
推荐指数
6
解决办法
7万
查看次数

Python - OpenCV - imread - 显示图像

我目前正致力于阅读图像并将其显示在窗口中.我已成功完成此操作,但在显示图像时,窗口只允许我查看完整图像的一部分.我尝试在加载后保存图像,并保存整个图像.所以我相当肯定它正在阅读整个图像.

imgFile = cv.imread('1.jpg')

cv.imshow('dst_rt', imgFile)
cv.waitKey(0)
cv.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud)

图片: 图片

截图: 截图

python opencv image imshow

29
推荐指数
1
解决办法
10万
查看次数

在matplotlib imshow中调整网格线和刻度线

我正在尝试绘制一个值矩阵,并希望添加网格线以使值之间的边界更清晰.不幸的是,imshow决定在每个体素的中间找到刻度线.是否有可能

a)删除刻度线,但将标签留在同一位置,
b)在像素边界之间添加网格线?

import matplotlib.pyplot as plt
import numpy as np

im = plt.imshow(np.reshape(np.random.rand(100), newshape=(10,10)),
                    interpolation='none', vmin=0, vmax=1, aspect='equal');
ax = plt.gca();
ax.set_xticks(np.arange(0, 10, 1));
ax.set_yticks(np.arange(0, 10, 1));
ax.set_xticklabels(np.arange(1, 11, 1));
ax.set_yticklabels(np.arange(1, 11, 1));
Run Code Online (Sandbox Code Playgroud)

没有网格线的图像和错误位置的刻度线 在此输入图像描述

ax.grid(color='w', linestyle='-', linewidth=2)
Run Code Online (Sandbox Code Playgroud)

网格线位于错误位置的图像:

在此输入图像描述

python matplotlib imshow

23
推荐指数
5
解决办法
3万
查看次数

使用 imshow() 时,图像未显示在 Google Colab 中

我正在开发一个需要 OpenCV 函数来绘制图像的项目。我正在尝试在 Google Colab 中使用以下代码显示图像。但输出中没有显示任何内容。有人可以帮我解决这个问题吗?

%pylab notebook
import cv2

testim = imread('butterfly.jpg')
figure()
imshow(testim)
plt.show()
Run Code Online (Sandbox Code Playgroud)

截屏:

在此处输入图片说明

链接到我的 Colab 笔记本

opencv matplotlib show imshow google-colaboratory

22
推荐指数
3
解决办法
7万
查看次数

不规则XYZ数据的轮廓/ imshow图

我有X,Y,Z格式的数据,其中所有都是一维数组,Z是坐标(X,Y)处的测量幅度.我想将这些数据显示为轮廓或"imshow"图,其中轮廓/颜色代表值Z(幅度).

用于测量的网格和X和Y外观是不规则间隔的.

非常感谢,

LEN(X)= 100

LEN(Y)= 100

LEN(Z)= 100

python plot contour imshow

21
推荐指数
1
解决办法
4万
查看次数

Matplotlib:使用imshow显示数组值

我正在尝试使用类似matplotlib函数创建网格imshow.
从这个数组:

[[ 1  8 13 29 17 26 10  4],
[16 25 31  5 21 30 19 15]]
Run Code Online (Sandbox Code Playgroud)

我想在同一网格上将值绘制为颜色和文本值本身(1,2,...).这就是我目前所拥有的(我只能绘制与每个值相关联的颜色):

from matplotlib import pyplot
import numpy as np

grid = np.array([[1,8,13,29,17,26,10,4],[16,25,31,5,21,30,19,15]])
print 'Here is the array'
print grid

fig1, (ax1, ax2)= pyplot.subplots(2, sharex = True, sharey = False)
ax1.imshow(grid, interpolation ='none', aspect = 'auto')
ax2.imshow(grid, interpolation ='bicubic', aspect = 'auto')
pyplot.show()   
Run Code Online (Sandbox Code Playgroud)

python numpy matplotlib imshow

19
推荐指数
2
解决办法
1万
查看次数

使用imshow在xaxis中为matplotlib绘制日期

所以我是使用matplotlib进行编程的新手.我使用imshow()和数组创建了一个颜色图.起初,轴只是我的数组的行号和列号.我使用extent =(xmin,xmax,ymin,ymax)分别得到unix时间和海拔高度的x轴.

我想将x轴从unix时间(982376726,982377321)更改为UT(02:25:26,02:35:21).我已经创建了一个HH:MM:SS的时间范围列表.我不知道如何用这些新数字替换我当前的x轴,而不改变颜色图(或使其消失).

我正在看datetime.time,但我对此感到困惑.

任何帮助将不胜感激!

python plot datetime matplotlib imshow

16
推荐指数
1
解决办法
6588
查看次数