Сбой утверждения cvtColor (OpenCV с C ++)

у меня есть

cv::Mat image;

объект, в который я загрузил изображение из файла, он правильно его читает и все.

Теперь я написал функцию, чтобы преобразовать его в серый цвет.

cv::cvtColor(image, image, CV_RGB2GRAY);

И эта ошибка появляется:

OpenCV Error: Assertion failed (scn == 3 || scn == 4) in cvtColor, file /build/buildd/opencv-2.3.1/modules/imgproc/src/color.cpp, line 2834
terminate called after throwing an instance of 'cv::Exception'
what():  /build/buildd/opencv-2.3.1/modules/imgproc/src/color.cpp:2834: error: (-215) scn == 3 || scn == 4 in function cvtColor

В чем может быть проблема?

Вот как я читаю изображение (через класс imagehandler, который имеет член cv :: Mat m_image)

imagehandler::imagehandler(const std::string& fileName)
: m_image(imread(fileName, CV_LOAD_IMAGE_COLOR))
{
if(!m_image.data)
{
cout << "Failed loading " << fileName << endl;
}

}

4

Решение

Попробуйте использовать другое изображение DST:

cv::Mat grayImage;
cv::cvtColor(image, grayImage, CV_RGB2GRAY);
6

Другие решения

Попробуйте image.clone () для копирования изображений

0

if(!image.empty()) {
//your_code
} else
std::cout<<"Emty "

проверьте матрицу, прежде чем конвертировать.

-1
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector