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 轉換演算法演算法
- 從 RGB 到 HSV 的轉換詳細介紹
- 為 CameraX ImageAnalysis 進行 YUV 到 RGB 的轉換
- [顏色進位制轉換]js實現rgb和hex的相互轉換JS
- JavaScript RGB轉換成16進位制顏色JavaScript
- RGB2YUV 的verilog實現(RGB轉YUV)
- iOS 常用RGB十六進位制顏色轉換方法iOS
- JavaScript 十六進位制顏色和RGB顏色值的相互轉換JavaScript
- 如何用OpenCV將影像從sRGB格式轉換為Adobe RGB格式OpenCV
- python--顏色的RGB轉BGR(opencv)PythonOpenCV
- 程式的狀態與轉換
- 高效能運算-bgra2rgb轉換-向量化最佳化(15)
- list與字串轉換字串
- Torrent檔案的解析與轉換
- QString與QByteArray互相轉換的方法
- float與byte[]互相轉換
- UIImage與Iplimage相互轉換UI
- DataTable與List相互轉換
- 轉換流與列印流
- SDOM與QDOM相互轉換
- 旋轉矩陣與尤拉角的相互轉換矩陣
- xml與陣列的相互轉換——phpXML陣列PHP
- Spark SQL中的RDD與DataFrame轉換SparkSQL
- python str與bytes之間的轉換Python
- SpringMVC的亂碼與時間轉換SpringMVC
- jenkins:實現Jenkinsfile與Json的轉換JenkinsJSON
- pyhanlp 繁簡轉換之拼音轉換與字元正則化HanLP字元
- 【Go】IP地址轉換:數字與字串之間高效轉換Go字串
- Hive日期、時間轉換:YYYY-MM-DD與YYYYMMDD;hh.mm.ss與hhmmss的相互轉換HiveHMM
- iOS引用轉換:Foundation與Core Foundation物件互相轉換(__CFString轉NSString,void *轉id等等)iOS物件
- 陣列與字串方法與相互轉換陣列字串
- matlab中將RGB影象轉化為灰度影象Matlab
- json字串與物件互相轉換JSON字串物件
- string與數字相互轉換
- Gson轉換與JSONObject區別JSONObject
- 使用Notepad轉換LF與CRLF
- JSON字串與HashMap相互轉換JSON字串HashMap