当前位置: 首页 > 知识库问答 >
问题:

如何在keras中显示预处理后的像素矩阵为图像?

江俊能
2023-03-14

在keras中安装神经网络之前,我正在处理我的图像。我希望在预处理后但在训练模型之前看到图像的样子(这样我可以确保预处理正确)。下面的命令生成一个对象并将其存储在train_image_array_gen中。但是,当我尝试访问每个图像时,它们存储为多维像素矩阵。如何直观地显示每个像素矩阵?

train_data_gen <- image_data_generator(
  rescale = 1/255
)

#train_image_files_path is just a directory of training images
train_image_array_gen <- flow_images_from_directory(train_image_files_path, 
                                                    train_data_gen, 
                                                    target_size = c(100,100), 
                                                    class_mode = "categorical", 
                                                    classes = c('0', '1', '2'), 
                                                    seed = 42, color_mode="grayscale")

print(train_image_array_gen[1])
#outputs array of pixels like so:

[[1]]
, , 1, 1

           [,1]      [,2]      [,3]      [,4]      [,5]      [,6]      [,7]      [,8]      [,9]     [,10]
 [1,] 0.2156863 0.2745098 0.3176471 0.3372549 0.3333333 0.3490196 0.3647059 0.3843138 0.3882353 0.3960785
 [2,] 0.2509804 0.3254902 0.4078432 0.4039216 0.4117647 0.4196079 0.4274510 0.4313726 0.4352942 0.4352942
 [3,] 0.1882353 0.1803922 0.2431373 0.2627451 0.2705882 0.2705882 0.2862745 0.2901961 0.2823530 0.2941177
 [4,] 0.2588235 0.3568628 0.4431373 0.4313726 0.4431373 0.4313726 0.4549020 0.4862745 0.5882353 0.6392157
 [5,] 0.2352941 0.2352941 0.2392157 0.2392157 0.2627451 0.2588235 0.2549020 0.2627451 0.2666667 0.2588235
 [6,] 0.2980392 0.3137255 0.3764706 0.4078432 0.4235294 0.4392157 0.4470589 0.4627451 0.4705883 0.4862745
 [7,] 0.2274510 0.2431373 0.2156863 0.2196079 0.2392157 0.2313726 0.2392157 0.2392157 0.2509804 0.2588235
 [8,] 0.3254902 0.3019608 0.3215686 0.4627451 0.5686275 0.5921569 0.6117647 0.6274510 0.6470588 0.6470588
 [9,] 0.3019608 0.2862745 0.2901961 0.3176471 0.3843138 0.3921569 0.3882353 0.4000000 0.4078432 0.4313726
[10,] 0.3215686 0.3215686 0.3254902 0.3098039 0.3058824 0.3176471 0.3215686 0.3294118 0.3372549 0.3411765
          [,11]     [,12]     [,13]     [,14]     [,15]     [,16]     [,17]     [,18]     [,19]     [,20]
 [1,] 0.4117647 0.4117647 0.3803922 0.2666667 0.3725490 0.3490196 0.3294118 0.3607843 0.3882353 0.3843138
 [2,] 0.4588236 0.4549020 0.4117647 0.4078432 0.4509804 0.4862745 0.4705883 0.4666667 0.4784314 0.4862745
 [3,] 0.3019608 0.3137255 0.3137255 0.2980392 0.1960784 0.2745098 0.3137255 0.3176471 0.3019608 0.3058824
 [4,] 0.6588235 0.6745098 0.6901961 0.5254902 0.6000000 0.6352941 0.6352941 0.6235294 0.6274510 0.6235294
 [5,] 0.2862745 0.2823530 0.2745098 0.2784314 0.2470588 0.2313726 0.2627451 0.2745098 0.2745098 0.2627451
 [6,] 0.5019608 0.5058824 0.5058824 0.4392157 0.3843138 0.4823530 0.5176471 0.5215687 0.5176471 0.5098040
 [7,] 0.2784314 0.2745098 0.2666667 0.2627451 0.2705882 0.2392157 0.2509804 0.2745098 0.2823530 0.2705882
 [8,] 0.6431373 0.6470588 0.6235294 0.5921569 0.6039216 0.5647059 0.5882353 0.6039216 0.6352941 0.6431373
 [9,] 0.4392157 0.4470589 0.4392157 0.4313726 0.4549020 0.4352942 0.4392157 0.4313726 0.4352942 0.4352942
[10,] 0.3215686 0.3254902 0.3333333 0.3215686 0.2980392 0.3294118 0.3607843 0.3725490 0.3607843 0.3686275

共有1个答案

百里星纬
2023-03-14

使用matplotlib可以执行以下操作:

from matplotlib import pyplot as plt
plt.imshow(array_of_pixels)
 类似资料:
  • 请指导我的混淆矩阵的热图显示。我尝试了不同的图大小,但没有得到正确的显示。我的代码如下和屏幕截图

  • 我想训练CNN使用Keras从图像预测矩阵(热图)。我的想法是微调keras提供的预训练网络(resnet、Exception、vgg16等)。 第一步是用预先训练好的顶层替换满足问题约束的顶层。我试图预测数值范围为0到1的热图图像。因此,我希望网络的输出为矩阵。我相信如果我使用,然后使用层,我将失去我不想要的空间信息(对吧?)。 我希望我的代码是灵活的,能够独立于正在使用的预训练体系结构运行(我

  • 数据增强采用的方法是从现有的示例中生成额外的训练数据,方法是通过增强,然后使用随机转换来生成看起来可信的图像。这有助于将模型公开给数据的更多方面,并更好地泛化。 所以我对此的理解是--例如,如果我没有太多的训练图像--我希望通过在现有的训练图像之外创建新的、增强的图像来生成额外的训练数据。 然后在上面链接的Keras文档中显示了如何将模块中的一些预处理层作为第一层添加到示例的模型中。所以从理论上讲

  • 问题内容: 我打算在窗口内显示28x28像素的图像。像素的值为“ 0”,因此我希望它显示一个带有28x28黑色正方形的窗口。但是没有图像显示。也许数组的数据(我不确定像素值是否必须为0到255之间的整数)必须是其他数据才能显示图像。谢谢! 公共课程ASD { 问题答案: 返回栅格的 副本 。也许如果在修改栅格后调用,您将看到结果。 同样,应该给setPixels一个足够大的数组,以填充栅格的所有波

  • 我是python的新手,在处理矩阵时遇到了一个问题。 我有一个矩阵,比方说 现在,我想让矩阵中的所有元素都等于零,除了在矩阵中重复最多次的元素。(在这种情况下,它是3)。 所以预期的结果是, 如果有人能帮我做这个的python代码,那真的很有帮助。

  • 问题内容: 我想将图像的颜色基础从RGB更改为其他颜色。我有一个要应用于每个像素的RGB的矩阵M,我们可以将其定义为x ij。 我目前正在迭代NumPy图像的每个像素并手动计算Mx ij。我什至无法对它们进行矢量化处理,因为RGB是1x3而不是3x1数组。 有一个更好的方法吗?也许是OpenCV或NumPy中的函数? 问题答案: 记不清执行此操作的规范方法(可能避免了转置),但这应该可行: 如果是