RGB與YIQ的轉換
每種顏色相當於一個三維向量,不同的表示法則相當於同一個向量在不同的座標軸下(即不同的基下)的表示。
YIQ簡單介紹
YIQ
,是NTSC(National Television Standards Committee)電視系統標準。Y是提供黑白電視及彩色電視的亮度訊號(Luminance),即亮度(Brightness),I代表In-phase,色彩從橙色到青色,Q代表Quadrature-phase,色彩從紫色到黃綠色。
優點
較其他顏色空間,YIQ顏色空間具有能將影象中的亮度分量分離提取出來的優點,並且YIQ顏色空間與RGB顏色空間之間是線性變換的關係,計算量小,聚類特性也比較好,可以適應光照強度不斷變化的場合,因此能夠有效地用於彩色影象處理。可用於在自然條件下采集到的複雜背景下的運動目標的識別。
RGB簡單介紹
RGB
色彩模式是工業界的一種顏色標準,是通過對紅®、綠(G)、藍(B)三個顏色通道的變化以及它們相互之間的疊加來得到各式各樣的顏色的,RGB即是代表紅、綠、藍三個通道的顏色,這個標準幾乎包括了人類視力所能感知的所有顏色,是目前運用最廣的顏色系統之一。
在電腦中,RGB的所謂“多少”就是指亮度,並使用整數來表示。通常情況下,RGB各有256級亮度,用數字表示為從0、1、2…直到255。注意雖然數字最高是255,但0也是數值之一,因此共256級。
按照計算,256級的RGB色彩總共能組合出約1678萬種色彩,即256×256×256=16777216。通常也被簡稱為1600萬色或千萬色。也稱為24位色(2的24次方)。
RGB 轉 YIQ
轉換是我們實驗室專案的一個需求,基於論文,利用YIQ對對影象處理上的優勢,Android中JNI連得C++的庫,連得OpenCV,做的操作和轉換。
//程式碼摘自我們的專案,師兄的程式碼,但是這個轉換公式網上應該不少,原理可自查
Mat XXX::Rgb2Ntsc(Mat&frame)
{
//輸入rgb的mat型圖
Mat dst = frame.clone();
frame.convertTo(frame, CV_32FC3);
dst.convertTo(dst, CV_32FC3);
//逐行逐列逐畫素點的轉換
for (int i = 0; i < frame.rows; i++)
{
for (int j = 0; j < frame.cols; j++) {
dst.at<Vec3f>(i, j)[2] = saturate_cast<float>(((0.299*frame.at<Vec3f>(i, j)[2] +
0.587*frame.at<Vec3f>(i, j)[1] +
0.114*frame.at<Vec3f>(i, j)[0])) / 255);
dst.at<Vec3f>(i, j)[1] = saturate_cast<float>(((0.596*frame.at<Vec3f>(i, j)[2] +
-0.274*frame.at<Vec3f>(i, j)[1] +
-0.322*frame.at<Vec3f>(i, j)[0])) / 255);
dst.at<Vec3f>(i, j)[0] = saturate_cast<float>(((0.211*frame.at<Vec3f>(i, j)[2] +
-0.523*frame.at<Vec3f>(i, j)[1] +
0.312*frame.at<Vec3f>(i, j)[0])) / 255) * 200;
}
}
return dst;//返回YIQ形式的mat
}
相關文章
- JavaScript rgb與十六進位制格式轉換JavaScript
- 【視訊處理】YUV與RGB格式轉換
- YUV格式到RGB格式的轉換
- YUV <——> RGB 轉換演算法演算法
- 從 RGB 到 HSV 的轉換詳細介紹
- [顏色進位制轉換]js實現rgb和hex的相互轉換JS
- 為 CameraX ImageAnalysis 進行 YUV 到 RGB 的轉換
- RGB和HSL之間的轉換 C++實現C++
- 十六進位制和RGB顏色格式的相互轉換
- JavaScript RGB轉換成16進位制顏色JavaScript
- RGB顏色與16進位制顏色的換算方法
- yuv 到 32 位 rgb 的 快速轉換演算法基mmx 實現 (轉)演算法
- iOS 常用RGB十六進位制顏色轉換方法iOS
- JavaScript 十六進位制顏色和RGB顏色值的相互轉換JavaScript
- RGB2YUV 的verilog實現(RGB轉YUV)
- 熊與猴的轉換(轉)
- 十六進位制顏色轉換為RGB程式碼例項
- YUV420P轉換為RGB32格式
- php中RGB轉十六進位制、十六進位制轉RGBPHP
- js 正則判斷顏色值,HEX轉RGB,HSL轉RGBJS
- (轉)CWnd與HWND的區別與轉換
- CLOB與BLOB的轉換
- js實現的十六進位制顏色和RGB顏色值的相互轉換JS
- RGB轉jpeg(opencv或IJG)OpenCV
- 使用ijl庫Jpg轉RGB
- 程式的狀態與轉換
- XML與DataSet的相互轉換XML
- Swift3.0語言教程字串與URL的資料轉換與自由轉換Swift字串
- 如何用OpenCV將影像從sRGB格式轉換為Adobe RGB格式OpenCV
- list與字串轉換字串
- 使用intel ijl庫 RGB轉JpgIntel
- java型別轉換與強制型別轉換(轉)Java型別
- Torrent檔案的解析與轉換
- NSData與UIImage之間的轉換UI
- 基類與派生類的轉換
- ascii碼與字元的相互轉換ASCII字元
- python--顏色的RGB轉BGR(opencv)PythonOpenCV
- 旋轉矩陣與尤拉角的相互轉換矩陣