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]]]
и создает файл «image_array.csv» со значениями пикселей, такими как:
192170164
191169164
191168166
184161159
180156156
183160158
190167165
189167162
174150144
и т.д.