python学习之数组array
首先,需要区分数组array与矩阵matrix的概念。
矩阵在MATLAB中应用较多,而array在numpy中应用较多。
(1)数组array按维度分为一维数组、二维数组、三维数组……
一维数组:a=[1,2,3]
二维数组:a=[[1,2],[3,4],[5,6]]
三位数组:a=[[[1,2],[3,4]],[5,[6,7]],……]
(这里涉及到python的两种数据类型 list 和 tuple,看这里https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014316724772904521142196b74a3f8abf93d8e97c6ee6000)
(2)矩阵matrix:类似于二维数组
补充:图像数据类型的引用
#提取彩色图片
>>> img=cv.imread('YANG.jpg')
>>> img
array([[[168, 188, 213],
[168, 185, 211],
[167, 185, 208],
...,
[232, 227, 224],
[232, 227, 224],
[232, 227, 224]],
[[170, 190, 215],
[170, 187, 213],
[167, 185, 208],
...,
[232, 227, 224],
[231, 226, 223],
[231, 226, 223]],
[[170, 190, 215],
[166, 186, 211],
[164, 182, 205],
...,
[231, 226, 223],
[231, 226, 223],
[231, 226, 223]],
...,
[[ 94, 111, 154],
[100, 115, 154],
[113, 123, 157],
...,
[214, 209, 210],
[214, 209, 210],
[214, 209, 210]],
[[115, 128, 166],
[121, 132, 164],
[136, 140, 165],
...,
[215, 210, 211],
[215, 210, 211],
[215, 210, 211]],
[[131, 141, 175],
[138, 144, 173],
[154, 154, 172],
...,
[216, 211, 212],
[216, 211, 212],
[216, 211, 212]]], dtype=uint8)
#提取图像行数
>>> print(len(img))
587
#提取图像列数
>>> print(len(img[0]))
883
>>> print(len(img[0][0]))
3
显然,彩色图片是三维数组,
灰度图是二维数组,
#提取灰度图片
>>> gray = cv.cvtColor(img,cv.COLOR_BGR2GRAY)
>>> print(gray)
[[193 191 190 ..., 227 227 227]
[195 193 190 ..., 227 226 226]
[195 191 187 ..., 226 226 226]
...,
[122 125 132 ..., 210 210 210]
[138 140 147 ..., 211 211 211]
[150 152 159 ..., 212 212 212]]
#打印灰度图行数
>>> print(len(gray))
587
#打印灰度图列数
>>> print(len(gray[0]))
883
补充:提取图像的行列可以用numpy的shape函数,但是注意只能用于numpy.array生成的数组进行操作,list和tuple则不行