近期很是困惑 一幅图像是如何在多维数据中存储,BGR的数据存格式和多维数据存储的联系,因此用了一张3X3的彩色图像做了个简单的实验。
import cv2
import os
import numpy as np
path = "./test.jpg"
image =cv2.imread(path)
(B G R) = cv2.split(image)
print image
打印出的结果如下:
[[[42 36 31]
[58 52 47]
[69 63 58]]
[[51 45 40]
[59 53 48]
[70 64 59]]
[[56 52 47]
[57 53 48]
[66 62 57]]]
再分别打印出BGR:
print B
print G
print R
结果如下:
B:[[42 58 69]
[51 59 70]
[56 57 66]]
G:[[36 52 63]
[45 53 64]
[52 53 62]]
R: [[31 47 58]
[40 48 59]
[47 48 57]]
通过对比数据存储格式,发现可以如下理解数据的存储格式:
首先假设图像默认的存储格式为BGR格式,从内向外依次放置。
然后从最左上角的数开始,从内向外取向量,比如第一个向量[42 36 31],接着从左往右依次取向量,就可得到最终的多维数组: