问题描述
我浏览了教程 origin and extent in imshow 以及 extent in imshow() 的文档。那里提到像素在数据坐标中具有单位大小,它们的中心在整数坐标上。因此,改变范围参数应该控制渲染图像中的像素数。我想验证一下。我的想法是制作一个 10x10x3 RGB 数据数组,并使用 imshow()
和默认范围绘制它。然后使用 imshow()
绘制相同的数据数组,但修改范围以确保更多的像素。当我需要验证两个渲染图像是否确实存在像素数差异时,我被卡住了。
下面是表达想法的代码-
import numpy as np
import matplotlib.pyplot as plt
# Make a 10x10x3 RGB data-array
x = np.linspace(1,10,10)
X,Y = np.meshgrid(x,x)
r = np.sqrt(X**2 + Y**2)
R = X/r
G = (np.sqrt(2*X*Y))/r
B = Y/r
data = np.stack([R,G,B],axis=-1)
fig,(ax1,ax2) = plt.subplots(1,2)
# image with supposedly lower pixels
im1 = ax1.imshow(data,origin='lower')
ax1.set_title('Lower expected pixel')
# image supposedly higher pixels
im2 = ax2.imshow(data,origin='lower',extent=(-0.5,99.5,-0.5,99.5))
ax2.set_title('Higher expected pixel')
我的主要问题是 -
- 我的猜测“改变范围会改变像素数”是否正确?
- 如何执行我上面提到的验证?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)