Почему у меня появляется сообщение об ошибке при инвертировании изображения в openCV? - PullRequest
0 голосов
/ 08 ноября 2018

Я обрабатываю UIImage для создания контура, и в этом процессе я сначала инвертирую его, затем делаю его серым. Вот код:

+(UIImage *)processInvertedImage:(UIImage *)image {

cv::Mat mat;
UIImageToMat(image, mat);

cv::Mat gray;
cv::cvtColor(mat, gray, CV_RGB2GRAY); 

cv::Mat inverted;
cv::invert(gray, inverted);   //// here it crashes

UIImage *binImg = MatToUIImage(inverted);   

return binImg;

}

Это код ошибки:

libc ++ abi.dylib: завершается с необработанным исключением типа cv :: Exception: OpenCV (3.4.2) / Volumes / build-storage / build / 3_4_iOS-mac / opencv / modules / core / src / lapack. cpp: 839: ошибка: (-215: подтверждение не выполнено) type == 5 || введите == 6 в функции 'инвертировать'

(lldb)

Почему я не могу использовать инвертированный метод? Я пытался инвертировать до преобразования в серый, но это не имело значения.

1 Ответ

0 голосов
/ 08 ноября 2018

С документ : cv::invert() требует CV_32F или CV_64F как тип, а не CV_8U в вашем случае. Кроме того, просто нужно убедиться, что вы хотите получить правильное обратное значение, cv::inverse() - это математическое обратное, а не обратное для обработки изображения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...