K-Means聚类及图像压缩中的reshape

老师您好,
请问reshape是更改数组的形状,请问您几个问题
1、这里的三维样本是指的那三维?是height 、 width、 depth?
2、=12ptpixel_sample = np.reshape(original_img, (height * width, depth))要将为什么(height * width, depth)kuo括起来,
3、计算机里面的几维数据,这里面的维可以理解成列吗?
4、pixel_sample = np.reshape(original_img, (height * width, depth))
=12ptprint=12pt(pixel_sample[::,:])这个输出怎样理解?
=12ptaa=12pt = np.arange(=12pt18=12pt).reshape(=12pt2=12pt, =12pt3=12pt, =12pt3=12pt)
    print(aa)这个输出又该怎样理解
 
1524121530694.png 1524121944682.png 1524121973259.png 1524121983528.png

泽南Alpha

赞同来自: fish

没完整代码,也看不到那个image->ubyte的函数,我看着你现有代码猜下,与实际可能有出入。 这里就是把一张图平铺。我用代码说吧:
a = np.arange(18).reshape(2,3,3)
print('a=',a)
print('a.shape=',a.shape)#a是张图,大小3x3,像素就是9,一个像素上可能颜色由深浅组成,所以又分成两份。所以0-8是1张,9-17是一张

depth, height, width = a.shape

pixel_sample = np.reshape(a, (depth, height * width))#把刚才说的3x3=9的平铺成9,然后另一维指的是几张,数字大你不知道几张的话可以写-1,会自己算

print('pixel_sample=',pixel_sample)
print('pixel_sample.shape=',pixel_sample.shape)
运行结果: a= [[[ 0  1  2]   [ 3  4  5]   [ 6  7  8]]  [[ 9 10 11]   [12 13 14]   [15 16 17]]] a.shape= (2, 3, 3) pixel_sample= [[ 0  1  2  3  4  5  6  7  8]  [ 9 10 11 12 13 14 15 16 17]] pixel_sample.shape= (2, 9)   总之就是平铺图,平铺过程中多用shape看维度上对不对...有时候还要用T做行列变换

要回复问题请先登录注册