日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

RGB彩色空间和YIQ、灰度等的转化

發布時間:2023/12/16 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RGB彩色空间和YIQ、灰度等的转化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最近看到不同色彩空間的轉化,RGB可以到灰度但是灰度不能到RGB。 一般彩色圖像至少需要三個維度的信息,比如RGB、HSV、YIQ等等。每種顏色相當于一個三維向量,不同的表示法則相當于同一個向量在不同的坐標軸下(即不同的基下)的表示。而將其變為灰度后,只剩下一個維度,相當于將三維向量投影為一維標量一樣,是不可能回復為原來的向量的。要想恢復,就必須儲存另外兩個維度的信息,合在一起還是三維向量,這還不如直接保存原來的彩色圖像數據。如果你一定要將其分解為灰度基和另兩個基下的表示,可以用YIQ表示,他的Y分量就和灰度數據等價,美國電視信號NTSC就是YIQ表示的,因此可以和黑白電視兼容(黑白電視只能接受Y信號,得到灰度圖像)。用命令rgb2ntsc和ntsc2rgb可以將數據在RGB和YIQ之間互換。下面是例子clear;clc; RGB = imread('peppers.png');%RGB圖像 YIQ = rgb2ntsc(RGB);%YIQ表示 GRAY=rgb2gray(RGB);%灰度圖像,它和YIQ中的Y等價,只不過灰度圖像的值是0~255的整數,而Y是0~1的實數,即GRAY=uint8(255*YIQ(:,:,1)) RGB_restore=ntsc2rgb(YIQ);%從YIQ表示恢復的RGB圖像 subplot 221 imshow(RGB);title('原圖像RGB') subplot 222 imshow(GRAY);title('灰度圖GRAY') subplot 224 imshow(YIQ(:,:,1));title({'轉換為YIQ后的Y分量','(和灰度圖等價)'}) subplot 223 imshow(RGB_restore);title({'從YIQ表示恢復的RGB圖像','(和原圖像一致)'})當然,這種分解是不唯一的,只要保證三個基互不相關即可。因此我們可以自己定義分解方法。比如,我們要將RGB表示轉換為RGg表示,也就是用灰度分量g取代藍色分量B,紅色分量R和綠色分量G不變。我們可以從RGg計算出藍色分量B,因為灰度g=p*R+q*G+t*B(其中p=0.2989,q=0.5870,t=0.1140),于是B=(g-p*R-q*G)/t。于是我們只要保留R和G兩個顏色分量,再加上灰度圖g,就可以回復原來的RGB圖像。下面是例子clear;clc; RGB = imread('peppers.png');%RGB圖像 g=rgb2gray(RGB);%灰度圖g R=double(RGB(:,:,1));%紅色分量R G=double(RGB(:,:,2));%綠色分量G,于是RGg就是一種我們自己定義的顏色表示方法了 p=0.2989;q=0.5870;t=0.1140; B=(double(g)-p*R-q*G)/t;%通過RGg計算得到的藍色分量B,他和原圖像中的藍色分量是一致的 subplot 131 imshow(RGB);title('原圖像RGB') subplot 132 imshow(g);title('灰度圖g') subplot 133 imshow(uint8(cat(3,R,G,B)));title({'從RGg表示恢復的RGB圖像','(和原圖像一致)'})

總結

以上是生活随笔為你收集整理的RGB彩色空间和YIQ、灰度等的转化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。