2014-03-13 91 views
0

我們有一個Matlab程序,它以YCbCr格式從相機拍攝圖像,然後保存爲RGB圖像,R值爲圖像的Y值,G值爲圖像的Cb值以及B值是圖像的Cr值。有沒有辦法在C++ openCV中複製這個過程?使用opencv拍攝並保存ycbcr格式的圖像

+0

你的意思是http://en.wikipedia.org/wiki/YCbCr,對吧? – misha

+1

是的,讓我編輯它。 –

回答

1

提供的OpenCV可以從攝像頭的圖像read,是的,你可以在OpenCV中複製這個過程。您所要做的就是確保每個通道都在可接受的範圍內(8位爲0..255),並將save圖像保存到文件中。

關於數值範圍,Cb和Cr可以是負數,但G和B可能不是。你可以通過shifting解決 - 在保存時加入128到Cb和Cr(加載時做相反的操作) - 或者聰明地選擇哪些通道是有符號和無符號的。

關於保存,圖像保存代碼假定圖像是RGB,並按原樣編碼R,G,B組件。如果你的圖像是YCbCr,那麼Y將被編碼爲R,Cb爲G,Cr爲B.圖像在其他程序中看起來是錯誤的,但是這是預期的。

相關問題