鱼C论坛

 找回密码
 立即注册
查看: 1776|回复: 1

[已解决]matplotlib方面

[复制链接]
发表于 2023-5-6 22:28:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
def plot_image(img, label, name):

    fig = plt.figure()
    for i in range(6):
        plt.subplot(2, 3, i + 1)
        plt.tight_layout()
        plt.imshow(img[i][0]*0.3081+0.1307, cmap='gray', interpolation='none')
        plt.title("{}: {}".format(name, label[i].item()))
        plt.xticks([])
        plt.yticks([])
    plt.show()

两个问题请大神解惑,
1.大神能不能详细解释一下plt.subplot(2, 3, i + 1)
2.plt.imshow(img[i][0]*0.3081+0.1307, cmap='gray', interpolation='none'),imshow的参数一般是:
(M, N):标量数据的图像,灰度图
(M, N, 3):RGB图像
(M, N, 4):RGBA图像,
为什么这段代码里面的参数可以是img[i][0]*0.3081+0.1307?另外能不能解释一下img[i][0]*0.3081+0.1307?
谢谢!
最佳答案
2023-5-6 22:31:40
[b]这是一个将图像进行可视化的函数。首先,我来解释您提到的两个问题。

1.  plt.subplot(2, 3, i + 1) :这个函数用于在一个图形窗口中创建子图。参数的含义如下:
   * 第一个参数(2)表示子图的行数。
   * 第二个参数(3)表示子图的列数。
   * 第三个参数(i + 1)表示当前子图的索引。
   
   在这个例子中,我们创建了一个2行3列的子图网格,共有6个子图。在循环中,我们依次在每个子图上绘制图像。

2.  plt.imshow(img[i][0]*0.3081+0.1307, cmap='gray', interpolation='none') : imshow 函数用于在子图上显示图像。参数的含义如下:
   *  img[i][0]*0.3081+0.1307 :这是要显示的图像。 img[i][0] 是一个二维数组,表示灰度图像。乘以0.3081然后加上0.1307可能是对图像进行归一化的逆操作。原来的归一化操作可能是: (img - 0.1307) / 0.3081 。这样的操作通常用于将图像的像素值缩放到一个较小的范围(例如0到1之间),便于神经网络处理。在显示图像时,我们需要进行逆操作,恢复原始像素值。
   *  cmap='gray' :这个参数指定了显示图像时使用的颜色映射。在这个例子中,我们使用灰度颜色映射来显示灰度图像。
   *  interpolation='none' :这个参数用于控制图像缩放时的插值方法。设置为'none'表示不使用插值,直接显示原始像素。

希望这些解释能帮助您理解这段代码。如果您还有其他问题,请随时提问。[/b]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-6 22:31:40 | 显示全部楼层    本楼为最佳答案   
[b]这是一个将图像进行可视化的函数。首先,我来解释您提到的两个问题。

1.  plt.subplot(2, 3, i + 1) :这个函数用于在一个图形窗口中创建子图。参数的含义如下:
   * 第一个参数(2)表示子图的行数。
   * 第二个参数(3)表示子图的列数。
   * 第三个参数(i + 1)表示当前子图的索引。
   
   在这个例子中,我们创建了一个2行3列的子图网格,共有6个子图。在循环中,我们依次在每个子图上绘制图像。

2.  plt.imshow(img[i][0]*0.3081+0.1307, cmap='gray', interpolation='none') : imshow 函数用于在子图上显示图像。参数的含义如下:
   *  img[i][0]*0.3081+0.1307 :这是要显示的图像。 img[i][0] 是一个二维数组,表示灰度图像。乘以0.3081然后加上0.1307可能是对图像进行归一化的逆操作。原来的归一化操作可能是: (img - 0.1307) / 0.3081 。这样的操作通常用于将图像的像素值缩放到一个较小的范围(例如0到1之间),便于神经网络处理。在显示图像时,我们需要进行逆操作,恢复原始像素值。
   *  cmap='gray' :这个参数指定了显示图像时使用的颜色映射。在这个例子中,我们使用灰度颜色映射来显示灰度图像。
   *  interpolation='none' :这个参数用于控制图像缩放时的插值方法。设置为'none'表示不使用插值,直接显示原始像素。

希望这些解释能帮助您理解这段代码。如果您还有其他问题,请随时提问。[/b]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-28 02:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表