2012-09-05 74 views
1

可能重複:
OpenCV and MATLAB gray scale values differ for the same imageMATLAB和OpenCV灰度圖像值的不同

在MATLAB中,我讀取彩色VEDIO,提取特定幀,並將其轉換使用rgb2gray爲灰度圖像函數。但是,當加載相同的視頻到openCV2.3.1並提取相同的幀,然後轉換爲灰度,它不會給出與matlab相同的灰度值?爲什麼??這是帶有openCV2.3.1的C++代碼 VideoCapture cap(0); cap.open(「Human sperm evaluation_0.avi」); 墊形象;墊灰(480,640,CV_8U);

for(int i=0;i<513;i++) 
{ 
    cap >> image; 
    cvtColor(image,gray,CV_RGB2GRAY); 
} 

for(int i=0;i<20;i++) 
{ 
    for(int j=0;j<20;j++) 
    { 
     cout<<(int)gray.at(i,j) << ' '; 
    } 
} 
+0

你爲什麼不接受答案? – Mikhail

回答

4
  1. OpenCV的默認使用BGR顏色格式。在這種情況下,您應該使用CV_BGR2GRAY模式。確保使用CV_RGB2GRAY時確實有RGB。

  2. 從一個實現到另一個實現從RGB到灰色的轉換可能不同。圖像處理軟件存在一個常見的錯誤,那就是不能在對某些係數進行求和之前補償當前RGB色彩空間的伽馬校正。如果你在OpenCV和Matlab結果上有小的差異,這可能是問題。