我需要一些不好的帮助。我发誓我已经寻找了 1 周的时间来寻找这个问题的答案,但没有成功,所以我来爬行寻求帮助。
我的目标很简单。我正在尝试在 Xcode 中使用 OpenCV 库。我有一些令人沮丧的问题。我让 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() 确定类型并返回 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();
当我运行它时,我得到了 tempMat 的 24 类型和 output2 的 5 类型。如果我尝试添加这个:
cv::cvtColor(output2, output2, CV_32FC1);
我得到错误:Assertion failed (scn == 3 || scn == 4) in cvtColor
有任何想法吗?即使它是 RTFM 的建议,我也会在这一点上采取任何措施。请帮忙。
谢谢你。