【问题标题】:How do I save an array converted from image in python? [duplicate]如何保存从python中的图像转换的数组? [复制]
【发布时间】:2018-08-18 13:50:23
【问题描述】:

任务是读取图像并提取数据以获得 25 x 25 像素的网格。我用这段代码来提取它,我得到了数据。但是我应该如何将其保存在文本文件中以查看整个 25 x 25 数组?

我刚刚将图像转换为这样的数组:

>>> img=cv2.imread("1670.png",0)
>>> img=cv2.imread("1670.png",0)

>>> img
array([[14, 15, 15, ..., 92, 91, 92],
[14, 15, 15, ..., 93, 93, 91],
[15, 15, 16, ..., 94, 93, 91],
...,
[69, 71, 76, ..., 73, 70, 68],
[69, 75, 81, ..., 76, 72, 69],
[69, 76, 81, ..., 80, 75, 71]], type=uint8)

我想将它作为 25 x 25 数组保存到文本文件中。我该怎么做?

【问题讨论】:

    标签: python arrays image


    【解决方案1】:

    用几个不同的文件转换写了一个小脚本:

    # -*- coding: utf-8 -*-
    """
    Created on Fri Mar 09 15:53:54 2018
    @author: soyab
    """
    
    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    from scipy.misc import imread, imsave, imresize
    
    #%%
    ## Read photo ; view photo
    img = imread('new_photo.jpg')
    plt.imshow(img)
    
    #%%
    ## Treat as a Numpy array
    np.shape(img)
    newimg = img[:25,:25,:][:,:,0] ## Take a 25x25 slice from a 
    np.shape(newimg)               ##  three 'layer' photo
    plt.imshow(newimg)
    
    #%%
    ## Save as a jpeg ; visual check
    imsave('modify_new_photo.jpg',newimg)
    nextimg = imread('modify_new_photo.jpg')
    plt.imshow(nextimg)
    
    #%%
    ## Using a Pandas Dataframe ; like a Kung Fu Panda
    ### Save as .txt or .csv ; reload as a pd.DataFrame
    #### Review again as an image
    nextimg = pd.DataFrame(nextimg)
    nextimg.to_csv('modify_nextimg.txt',header=False,index=False)
    fimg = pd.read_csv('modify_nextimg.txt')
    plt.imshow(fimg)
    

    【讨论】:

    • 您好,您是从三层照片中截取的吗?不切片我能做到吗?
    • 您必须检查照片的尺寸。当我写这个例子时,我使用了一张 3d 数组格式的照片。您分配给“nextimg”的任何 Python 图像对象都可以使用提供的代码保存。
    猜你喜欢
    • 2019-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-16
    • 1970-01-01
    • 2018-10-26
    • 1970-01-01
    相关资源
    最近更新 更多