全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:3361
推到 Plurk!
推到 Facebook!

攝影機的影像格式轉換

答題得分者是:lichart
natakuex1
一般會員


發表:1
回覆:0
積分:0
註冊:2007-05-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-10-26 02:28:26 IP:140.122.xxx.xxx 訂閱
各位高手你們好

因為我的影像擷取卡只支援I420與YUY2的格式

但是我的需求是在做RGB的影像處理

我目前只能處理的到Y的部份,U跟V的部份是有抓到資料

可是我沒半法藉公式將YUV轉回RGB

請教一下各位高手

U跟V是否要經過一些轉換才能夠套用公式來處理
lichart
一般會員


發表:0
回覆:4
積分:5
註冊:2005-09-01

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-12-31 20:43:55 IP:220.143.xxx.xxx 訂閱
您可以參考 XviD (open source)中的色彩轉換程式碼.
至少有支援 I420 to RGB24
killop
一般會員


發表:14
回覆:17
積分:11
註冊:2003-09-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-01-29 20:15:37 IP:140.116.xxx.xxx 訂閱
雖然已經結案了
但我還是發表一下我用的經驗
之前用的是登昌恆的UPG301BII擷取影像 格式是RGB
後來買了UPG304之後一整個冏
格式不支援RGB 只有YUV

所幸我使用的程式可以抓到YUV的raw data
(井民全大網站的範例:pBuffer就是影像的raw data)

RGB格式在記憶體中的順序:
[R1][B1][G1][R2][B2][G2][R3][B3][G3].......

R1, B1, G1為第一點的RGB值
R2, B2, G2為第二點的RGB值
(我不知道為什麼他是RBG的順序, 不這樣弄顏色跟商用軟體抓的顏色看起來不一樣)

YUV格式在記憶體中的順序:
[Y1][U1][Y2][V1][Y3][U2][Y4][V2].......

Y1, U1, V1為第一點的YUV值
Y2, U1, V1為第二點的YUV值
Y3, U2, V2為第三點的YUV值
Y4, U2, V2為第四點的YUV值

所以
YUV是以每4個byte作兩點的顏色(U跟V是每兩點共用同一值)
RGB是以每6個byte作兩點的顏色

轉換公式:
R1 = 1.164*(Y1 - 16) 1.596*(V1 - 128);
G1 = 1.164*(Y1 - 16) - 0.813*(V1 - 128) - 0.391*(U1 - 128);
B1 = 1.164*(Y1 - 16) 2.018*(U1 - 128);
R2 = 1.164*(Y2 - 16) 1.596*(V1 - 128);
G2 = 1.164*(Y2 - 16) - 0.813*(V1 - 128) - 0.391*(U1 - 128);
B2 = 1.164*(Y2 - 16) 2.018*(U1 - 128);

YUV2RGB的程式可以在下面連結找到
http://blog.csdn.net/hardVB/archive/2007/10/18/1831810.aspx


至於lichart大大說的Xvid我是沒找到source code
如果有的話 請指點一下
編輯記錄
killop 重新編輯於 2008-01-29 20:16:38, 註解 無‧
killop 重新編輯於 2008-01-29 20:17:54, 註解 無‧
killop 重新編輯於 2008-01-29 20:19:07, 註解 無‧
lichart
一般會員


發表:0
回覆:4
積分:5
註冊:2005-09-01

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-01-30 01:20:02 IP:122.120.xxx.xxx 訂閱
Hello,
XviD code: http://downloads.xvid.org/downloads/xvidcore-1.1.3.zip
你可以參考資料夾 src\image\colorspace.*

另外, 有些建議:
1. 所述之RGB24資料應該是: [BGR][BGR]...
2. YUV有分Packet跟Planar, 差異在於Y/U/V混雜著排置或是區分在三塊連續記憶體.
此外, 又依U/V取樣差異可分為4:4:4, 4:2:2, 4:2:0 or 4:1:0等格式.
細節在Wiki上有文章: http://en.wikipedia.org/wiki/YUV
3. 實作上避免使用符點運算, 你可看XviD範例.

Good Luck~
:)
系統時間:2024-05-07 15:06:19
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!