如何将cv2.read()的结果返回输出到文件中

时间:2018-04-26 17:34:11

标签: tensorflow computer-vision opencv3.0

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

如何从输入图像中可视化数组读取? 我可以在这里使用任何TensorFlow方法吗?

1 个答案:

答案 0 :(得分:0)

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]
    [191 169 164]
    [191 168 166]
    ...
    [109 152 201]
    [59 125 196]
    [66 117 167]]]

enter image description here

并使用像这样的像素值创建文件“image_array.csv”:

  

192170164
  191169164个
  191168166个
  184161159个
  180156156个
  183160158个
  190167165个
  189167162个
  174150144个
  等