2019-10-01 opencv圖像數(shù)據(jù)結(jié)構(gòu)之Mat

Mat 介紹

? ? ? Mat的本質(zhì)是具有兩個數(shù)據(jù)部分的類:矩陣頭(包含諸如矩陣大小瘟判,用于存儲的方法禀梳,用于存儲矩陣的地址等信息)以及指向真正圖像數(shù)據(jù)矩陣的指針浓冒。矩陣頭的大小是恒定的衙吩,但真正的圖像矩陣的大小是因?qū)嶋H圖像的大小而異笔刹。

? ? ? ? opencv是圖像處理庫芥备,包含有大量的圖像處理功能。這些功能在程序中表現(xiàn)為一個一個函數(shù)的形式舌菜,那么為了處理圖像萌壳,一定少不了在函數(shù)間傳遞圖像。如果每傳遞一次圖像就為其新分配一次內(nèi)存空間日月,必然會導(dǎo)致圖像處理速度的大大下降袱瓮,同時也會占用過高的內(nèi)存空間。為了解決這個問題爱咬,opencv是這樣做的:每個Mat對象都有其唯一的矩陣頭尺借,但是實質(zhì)性的圖像矩陣地址可以共享,訪問方式可以通過指針精拟。在這種機制下燎斩,在程序中如果需要傳遞圖像時,僅傳遞圖像的矩陣頭信息和指針蜂绎,而不會去傳遞實質(zhì)性的圖像數(shù)據(jù)栅表。


? 例子1: Mat A, C;// creates just the header parts

? ? ? ? ? ? ? ? A =imread(argv[1],IMREAD_COLOR);// here we'll know the method used (allocate matrix)

? ? ? ? ? ? ? ? Mat B(A);// Use the copy constructor

? ? ? ? ? ? ? ? C = A;// Assignment operator

? ? ? ? 例子1中,3個Mat對象 A,B,C所指向的實質(zhì)性的圖像數(shù)據(jù)矩陣是同一個师枣,但是它們的矩陣頭信息(身份證號)是不同的怪瓶。由于實質(zhì)性的圖像數(shù)據(jù)矩陣是同一個,所以改變A,B,C中的任何一個坛吁,另外兩個也會改變劳殖。這種改變表現(xiàn)在它們的矩陣頭信息的變化上铐尚。例如,通過對A操作把圖像大小減小了一半哆姻,那么B,C的矩陣頭信息中表征圖像大小的信息部分一定也會變宣增。在這種機制基礎(chǔ)之上會有一個有意思的事情發(fā)生,你完全可以創(chuàng)建一個只引用實質(zhì)圖像矩陣的子部分信息的矩陣頭矛缨。這種應(yīng)用有一個很好的例子爹脾,它是:ROI,只需創(chuàng)建具有新邊界的新標(biāo)題即可,如下面例子2箕昭,其中 Mat 對象D灵妨,E只引用了A所引用的圖像的一部分。

? ? 例子2:Mat D (A,Rect(10, 10, 100, 100) );// using a rectangle

? ? ? ? ? ? ? ? Mat E = A(Range::all(), Range(1,3));// using row and column boundaries

? ? ? ? ? ? 圖像在內(nèi)存中的整個生命周期中會有一個計數(shù)變量與其相關(guān)落竹,這個變量有什么用呢泌霍?它用來表征,有多少個Mat 對象述召,引用這個圖像朱转,當(dāng)這個計數(shù)變量值為0時,系統(tǒng)會釋放掉圖像 所占內(nèi)存积暖。當(dāng)然有時也許要真正完全傳遞整個圖像而不是指針藤为,因此opencv提供了cv :: Mat :: clone()cv :: Mat :: copyTo()函數(shù)來解決這個問題,如下例子3夺刑。

? ? ? 例子3:Mat F = A.clone();

? ? ? ? ? ? ? ? ? ? Mat G;

? ? ? ? ? ? ? ? ? ? A.copyTo(G);

? ? ? ? ? ? 例子3中缅疟,A,F,G指針?biāo)傅膶嵸|(zhì)性圖像矩陣不是同一個,因此通過A,F,G對圖像操作遍愿,相互之間不會有影響 存淫。


存放方法

? ? ? ? 存放方法的描述是關(guān)于如何存儲像素值的(說明存放像素有多種方法可以選擇)。這種選擇错览,體現(xiàn)在色彩空間和數(shù)據(jù)類型的選擇上纫雁。色彩空間不同,也就是對顏色編碼的方式不同倾哺。最簡單的一種是灰度空間轧邪,在灰度空間下我們可以使用白色和黑色的不同組合來創(chuàng)建許多灰色陰影。

? ? ? ? 對應(yīng)顏色羞海,我們有多種編碼方式選擇忌愚,比較主流的是RGB。RGB主流的原因和我們?nèi)搜劬幋a顏色的方式有關(guān)系却邓。它的基色是

紅色硕糊,綠色和藍(lán)色。為了編碼顏色的透明度,有時會添加第4個量:alpha(A)简十。

但是還有很多其他色彩空間系統(tǒng)檬某,并且各有優(yōu)點:

? 1、? RGB是最常見的一種螟蝙,因為我們的眼睛使用的恢恼,就是類似的系統(tǒng)。但是opencv標(biāo)準(zhǔn)顯示系統(tǒng)使用BGR色彩空間(紅胰默、藍(lán)通道切換)來編碼顏色场斑。

? 2、 HSV和HLS將顏色分解為它們的色相牵署,飽和度和值/亮度分量漏隐,這是我們描述顏色更自然的方法。例如奴迅,您可以忽略最后一個變量青责,從而使算法對輸入圖像的光照條件不太敏感。

? 3半沽、 流行的JPEG圖像格式使用的YCrCb爽柒。

? ? 4吴菠、CIE L*a*b*是一個感知上統(tǒng)一的色彩空間者填,如果您需要測量給定顏色與另一種顏色空間的差距,它會派上用場做葵。

色彩空間解決的是一信號有多少通道的問題(多少變量)占哟,那么數(shù)據(jù)類型解決的是,一個變量幾位數(shù)據(jù)位(是否有符號酿矢,是整數(shù)還是實數(shù))度量它的問題榨乎。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市瘫筐,隨后出現(xiàn)的幾起案子蜜暑,更是在濱河造成了極大的恐慌,老刑警劉巖策肝,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件肛捍,死亡現(xiàn)場離奇詭異,居然都是意外死亡之众,警方通過查閱死者的電腦和手機拙毫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來棺禾,“玉大人缀蹄,你說我怎么就攤上這事。” “怎么了缺前?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵蛀醉,是天一觀的道長。 經(jīng)常有香客問我衅码,道長滞欠,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任肆良,我火速辦了婚禮筛璧,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘惹恃。我一直安慰自己夭谤,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布巫糙。 她就那樣靜靜地躺著朗儒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪参淹。 梳的紋絲不亂的頭發(fā)上醉锄,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天,我揣著相機與錄音浙值,去河邊找鬼恳不。 笑死,一個胖子當(dāng)著我的面吹牛开呐,可吹牛的內(nèi)容都是我干的烟勋。 我是一名探鬼主播,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼筐付,長吁一口氣:“原來是場噩夢啊……” “哼卵惦!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起瓦戚,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤沮尿,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后较解,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體畜疾,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年哨坪,在試婚紗的時候發(fā)現(xiàn)自己被綠了庸疾。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡当编,死狀恐怖届慈,靈堂內(nèi)的尸體忽然破棺而出徒溪,到底是詐尸還是另有隱情,我是刑警寧澤金顿,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布臊泌,位于F島的核電站,受9級特大地震影響揍拆,放射性物質(zhì)發(fā)生泄漏渠概。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一嫂拴、第九天 我趴在偏房一處隱蔽的房頂上張望播揪。 院中可真熱鬧,春花似錦筒狠、人聲如沸猪狈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽雇庙。三九已至,卻和暖如春灶伊,著一層夾襖步出監(jiān)牢的瞬間疆前,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工聘萨, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留竹椒,地道東北人。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓匈挖,卻偏偏與公主長得像碾牌,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子儡循,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,691評論 2 361

推薦閱讀更多精彩內(nèi)容