RGB顏色空間轉LAB

2021-10-01 11:34:48 字數 669 閱讀 6254

第一:lab顏色空間簡介

lab是由乙個亮度通道(channel)和兩個顏色通道組成的。在lab顏色空間中,每個顏色用l、a、b三個數字表示,各個分量的含義是這樣的:

第二:為什麼使用lab顏色空間

因為它是一種裝置無關的顏色系統,也是一種基於生理特徵的顏色系統。它所描述的顏色空間就是人眼的視覺感應。

第三:從rgb到lab

使用opencv自帶的函式,在opencv裡可以使用cvtcolor函式來實現。

cvtcolor

(img1, img1, cv_bgr2lab)

2.自定義函式進行轉換,因為cvtcolor函式的效率太慢,所以自己寫乙個函式來將rgb顏色空間轉換為lab空間。

void

rgbtolab

(cv::mat &img)

}}

因為rgb顏色空間不能直接轉化為lab空間,所以需要通過公式先將其轉化為xyz顏色空間,再轉化為lab。通過指標去遍歷影象中的每個畫素點的值,再通過公式轉換。可以達到同樣的效果,並且指標遍歷的方式效率很高。值得注意的是,opencv的乙個畫素的三通道值不是[0],[1],[2]對應r,g,b而是對應為b,g,r的值。

RGB轉LAB色彩空間

1.原理 rgb無法直接轉換成lab,需要先轉換成xyz再轉換成lab,即 rgb xyz lab 因此轉換公式分兩部分 1 rgb轉xyz 假設r,g,b為畫素三個通道,取值範圍均為 0,255 轉換公式如下 等同於如下公式 x var r 0.4124 var g 0.3576 var b 0....

RGB轉LAB色彩空間

1.原理 rgb無法直接轉換成lab,需要先轉換成xyz再轉換成lab,即 rgb xyz lab 因此轉換公式分兩部分 1 rgb轉xyz 假設r,g,b為畫素三個通道,取值範圍均為 0,255 轉換公式如下 等同於如下公式 x var r 0.4124 var g 0.3576 var b 0....

RGB轉LAB色彩空間

1.原理 rgb無法直接轉換成lab,需要先轉換成xyz再轉換成lab,即 rgb xyz lab 因此轉換公式分兩部分 1 rgb轉xyz 假設r,g,b為畫素三個通道,取值範圍均為 0,255 轉換公式如下 0.4124,0.3576,0.1805 0.2126,0.7152,0.0722 0....