imshow() 的不同程度是否会导致渲染图像时像素数发生变化?

问题描述

我浏览了教程 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')

Output

我的主要问题是 -

  • 我的猜测“改变范围会改变像素数”是否正确?
  • 如何执行我上面提到的验证?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)