[J學堂] Transform color space from yuv to rgb. | rgb transform
一般的彩色影像,有很多種表示方法,也稱為「色彩空間」。接著我將教你如果將YUV轉RGB。 【Basic】 由於YUV格式分成很多種形式,所以在轉換之前,你必須先搞清楚你用的是那一種形式的YUV格式。你可以參考以下的wiki連結,它有清楚的介紹。以下我提供了二個範例,一個是將YUV444轉換成RGB,另一個是將YUV420轉換成RGB。 【YUV444toRGB】 在之前發表的一篇「HowtousewebcaminMatlab?」,有些人的webcam預設抓取下來的影像是屬於YUV的格式,你可以利用以下的function來轉換。[1] function imgRGB=YUV2RGB(imgYUV) yuv...
一般的彩色影像,有很多種表示方法,也稱為「色彩空間」。接著我將教你如果將YUV轉RGB。
【Basic】
由於YUV格式分成很多種形式,所以在轉換之前,你必須先搞清楚你用的是那一種形式的YUV格式。你可以參考以下的wiki連結,它有清楚的介紹。以下我提供了二個範例,一個是將YUV444轉換成RGB,另一個是將YUV420轉換成RGB。
【YUV444 to RGB】
在之前發表的一篇「How to use webcam in Matlab?」,有些人的webcam預設抓取下來的影像是屬於YUV的格式,你可以利用以下的function來轉換。[1]
function imgRGB = YUV2RGB(imgYUV)
yuvToRgb = [1 0 1.402;
1 -0.344 -0.714;
1 1.772 0];
[height width] = size(imgYUV(:,:,1));
yuv = double(reshape(imgYUV, height * width, 3));
yuv(:, 2 : 3) = yuv(:, 2 : 3) - 128;
rgb = (yuvToRgb *yuv);
logical_min = rgb < 0;
rgb = rgb .* double(~logical_min);
logical_max = rgb > 255;
rgb = rgb .* double(~logical_max);
rgb = rgb + double(l...