代码之家  ›  专栏  ›  技术社区  ›  Liu Hantao

如何输出cv2返回的结果。将()读入文件

  •  0
  • Liu Hantao  · 技术社区  · 6 年前

    我首先使用im=cv2读取图像。读取(image),它应该返回一个np数组。所以我做了im。dump('output.txt'),其中输出文件给了我一堆垃圾

    如何可视化从输入图像读取的数组? 我可以在这里使用张量流方法吗?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Peter Szoldan    6 年前

    img = cv2.imread( image_file ) 是读取图像的正确方法。那么你可以 plt.imshow() 查看图像,或使用csv将数值输出到文件。

    代码(在Jupyter笔记本中测试):

    import numpy as np
    import cv2
    import csv
    import matplotlib.pyplot as plt
    %matplotlib inline
    
    img = cv2.imread( "./angelina jolie happy.jpg" )
    print( img )
    with open( "image_array.csv", 'wb') as f:
        w = csv.writer( f )
        for x in xrange( img.shape[ 0 ] ):
            for y in xrange( img.shape[ 1 ] ):
                w.writerow( img[ x ][ y ])
    
    plt.imshow( cv2.cvtColor( img, cv2.COLOR_BGR2RGB ) )
    

    输出:

    [192 170 164]
    [191169164]
    [191 168 166]
    。。。
    [109 152 201]
    [59 125 196]
    [66 117 167]]

    enter image description here

    并创建具有如下像素值的文件“image\u array.csv”:

    192170164
    191169164
    191168166
    184161159
    180156156
    183160158
    190167165
    189167162
    174150144