攝影機的影像格式轉換 |
答題得分者是:lichart
|
natakuex1
一般會員 發表:1 回覆:0 積分:0 註冊:2007-05-07 發送簡訊給我 |
|
lichart
一般會員 發表:0 回覆:4 積分:5 註冊:2005-09-01 發送簡訊給我 |
|
killop
一般會員 發表:14 回覆:17 積分:11 註冊:2003-09-04 發送簡訊給我 |
雖然已經結案了
但我還是發表一下我用的經驗 之前用的是登昌恆的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 如果有的話 請指點一下 |
lichart
一般會員 發表:0 回覆:4 積分:5 註冊:2005-09-01 發送簡訊給我 |
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~ :) |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |