Мне нужна помощь в плохом смысле. Клянусь, я уже неделю искал ответ на этот вопрос, и безуспешно, поэтому я приползаю за помощью.
Моя цель проста. Я пытаюсь использовать библиотеку OpenCV в Xcode. У меня возникла неприятная проблема. У меня есть библиотека OpenCV, которая хорошо работает с cvCanney и cvAdaptive Transforms, но я не могу заставить ее выполнять cv::dft(). Я начал с попытки сделать следующее:
cv::Mat tempMat = [self.imageView.image CVGrayscaleMat];
cv::dft(tempMat, output2);
Это приведет к ошибке, потому что он не в правильном формате (CV_32FC1). Итак, я попробовал:
cv::Mat tempMat = [self.imageView.image CVMat];
cv::cvtColor(tempMat, output2, CV_32FC1);
cv::dft(output2, output3);
и я получаю ту же ошибку. В частности, ошибка гласит:
Assertion failed (type == CV_32FC1 || type == CV_32FC2 || type == CV_64FC1 || type == CV_64FC2) in dft
В качестве обновления исходного вопроса я пытался определить тип с помощью cv::type(), и он возвращает тип = 24. Может ли кто-нибудь объяснить мне, как расшифровать, что означает этот тип? Это неправильный тип? Последняя попытка:
cv::Mat tempMat = [self.imageView.image CVMat];
cv::Mat output2(tempMat.rows, tempMat.cols, CV_32FC1);
cv::cvtColor(tempMat, tempMat, CV_32FC1);
int type = tempMat.type();
int type2 = output2.type();
Когда я запускаю это, я получаю тип 24 для tempMat и тип 5 для output2. Если я попытаюсь добавить это:
cv::cvtColor(output2, output2, CV_32FC1);
Я получаю ошибку: Assertion failed (scn == 3 || scn == 4) in cvtColor
Есть идеи? Даже если это предложение RTFM, я соглашусь на что угодно. Пожалуйста помоги.
Спасибо.