Как понять это исключение, вызванное в программе OpenCV

введите здесь описание изображения

У меня есть следующее исключение в моей программе OpenCV. У меня на компьютере было следующее изображение, я переместил его на свой мобильный телефон и прочитал Mat imageRead = Highgui.imread("/mnt/sdcard/Pictures/2im00.png");

введите здесь описание изображения

Затем я попытался преобразовать его цветовое пространство в HSV, используя следующую инструкцию, и получил исключение для этой инструкции.

Imgproc.cvtColor(imageRead, hsvImage, Imgproc.COLOR_RGB2HSV);

Но мне кажется, что исключение ничего больше не говорит, кроме того, что оно находится в функции cvtColor, или я не могу прочитать там закодированную информацию.

Итак, вопрос в том, как мне узнать, почему я получаю это исключение?

Есть ли там какая-либо закодированная информация, например, некоторые коды (например, scn==3 или scn==4 или ошибка:-215 или глубина и т. д.), которые я могу просмотреть где-нибудь, чтобы узнать, почему я получаю исключение?


person Solace    schedule 10.12.2015    source источник
comment
Посмотрите также здесь. OpenCV говорит вам, что ваши каналы исходного изображения scnдолжны быть 3 или 4, а его глубина должна быть беззнаковым символом (CV_8U) или плавающей точкой (CV_32F)   -  person Miki    schedule 11.12.2015


Ответы (1)


Скорее всего, ошибка Assertion возникает из-за того, что вы передаете пустое изображение в функцию cvtColor. Или изображение Mat, которое вы передаете, не имеет формата CV_8U или CV_32F.

Я согласен с комментарием Мики, для получения более подробной информации перейдите по этой ссылке error-in-cvtcolor/32035702#32035702">Как интерпретировать сообщения об ошибках утверждения С++ opencv из-за ошибки в функции cvtColor?

person MarKS    schedule 13.12.2015
comment
Вы также должны добавить ссылку из комментария Мики, потому что это сделает ваш ответ более полезным для будущих посетителей. (Не забудьте отдать должное им). - person Solace; 13.12.2015