/ / matlab и opencv стойностите на сивото на изображението в сиво се различават [duplicate] - matlab, opencv

matlab и opencv стойностите на сивото на изображението в сиво се различават [duplicate] - matlab, opencv

Възможно дублиране:
Стойностите на OpenCV и MATLAB сивата скала се различават за едно и също изображение

В MATLAB, прочетох един цвят vedio, извлечете aопределени рамка и да го конвертирате в сиво мащаб изображение използване rgb2gray функция.Но при зареждане на същия vedio да openCV2.3.1 и извличане на една и съща рамка след това конвертиране в сиво мащаб тя не дава същите сиви скала стойности като MATLAB ??? защо? Това е C ++ код с openCV2.3.1 Капачка за видеоклип (0); cap.open ("Изследване на човешкото сперма_0.avi"); Мат изображение; Mat сиво (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) << " ";
}
}

Отговори:

4 за отговор № 1
  1. OpenCV използва цветови формат BGR по подразбиране. В този случай трябва да използвате CV_BGR2GRAY режим. Уверете се, че наистина имате RGB, когато използвате CV_RGB2GRAY.

  2. Конвертирането от RGB в сиво може да се различава от едноизпълнение в друга. Има често срещана грешка в софтуера за обработка на изображения, която да не компенсира гама-корекцията на текущото RGB цветово пространство преди да сумира каналите с някои коефициенти. Ако имате малки разлики в резултатите от OpenCV и Matlab, това може да е проблемът.