圖像的數據結構¶
概要¶
講解了圖像的數據結構Numpy
keywords numpy 圖像 數據結構
圖像的數據結構¶
opencv圖像讀取(imread
) 讀入的數據格式是numpy的ndarray數據格式.
TODO 其實介紹圖像的數據結構,須要以BGR彩圖與Graysacle為例子來講解
如果你對此不是很了解, 可以參照阿凱寫的Numpy快速入門教程.
因為阿凱在給大家教授python-opencv, 而在python-opencv讀入一個圖片對象就是numpy的ndarray類型, 所以阿凱有必要在這里給大家講解一下numpy的一些基礎操作. 同時還會介紹numpy中兩個重要的概念全局函數與廣播. 最后阿凱還介紹了numpy下面的兩個包, linalg線形代數計算包與random隨機生成包.
下面是以BGR格式為例介紹Image的數據結構.
第一維度 : Height
高度, 對應這張圖片的 nRow
行數
第二維度 : Width
寬度, 對應這張圖片的nCol
列數
第三維度: Value
BGR三通道的值.
BGR 分別代表
B: Blue
藍色
G: Green
綠色
R: Red
紅色
TODO 這里是不是不太好這么講?
我隨便取了一個圖片5*5的小方塊, 大家感受一下.
In [18]: img[100:105, 100:105] Out[18]: array([[[29, 15, 0], [29, 14, 0], [29, 13, 1], [29, 13, 1], [29, 12, 3]], [[27, 14, 0], [27, 14, 0], [27, 14, 0], [27, 13, 1], [29, 12, 3]], [[27, 14, 0], [25, 14, 0], [25, 14, 0], [23, 14, 1], [29, 12, 3]], [[25, 15, 0], [25, 14, 0], [23, 14, 0], [23, 14, 0], [27, 12, 3]], [[25, 15, 0], [23, 14, 0], [23, 14, 0], [22, 15, 0], [27, 12, 3]]], dtype=uint8)
這里大家還可以看到, 這個圖像數據存儲格式是uint8
, 也就是正數類型, 用八位存儲像素的取值.
dtype=uint8
取值范圍是 0 至2^8-1也就是255.