微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 举报,一经查实,本站将立刻删除。