0
我正在做一些非常基本的邊緣檢測的東西。我的部分實現涉及將自定義Image類複製到cv :: Mat,然後複製回Image。我正在使用this article作爲我的指南,以獲取邊緣檢測和輪廓工作(未在當前列表中顯示)。在此示例中,PerturbedBorderFilter子類爲Image。以下是我有:cv :: Canny拋出不匹配/不支持的格式異常
void PerturbedBorderFilter::performFilter(const Image& src)
{
int h = src.Height(), w = src.Width();
cv::Mat
orig(h, w, CV_32FC3),
cannyOutput(h,w,CV_32FC1),
origGray(h,w,CV_32FC1);
src.copyTo(orig);
cv::cvtColor(orig, origGray, CV_RGB2GRAY);
cv::blur(origGray, origGray, cv::Size(3,3));
cv::Canny(origGray, cannyOutput, 0.1, 0.2, 3);
copyFrom(cannyOutput);
}
我結束了這種運行時錯誤:
OpenCV Error: Unsupported format or combination of formats() in cvCanny, file /build/buildd/opencv-2.3.1/modules/imgproc/src/canny.cpp, line 67
terminate called after throwing an instance of 'cv::Exception'
what(): /build/buildd/opencv-2.3.1/modules/imgproc/src/canny.cpp:67: error: (-210) in function cvCanny
從我可以告訴,「origGray」和「cannyOutput」共享相同的類型,深度和通道計數。我不知道還有什麼我應該檢查。
如果以某種方式執行copyTo()和copyFrom()很重要,我也可以給出這些。
一些額外的信息:
- 類圖像的原始顏色空間是RGB,32位浮點深度,具有值[0,1]。
- 目前,copyTo()將圖像上下顛倒但是完好無損。我認爲這必須是無關的,但誰知道,也許它是有用的...
謝謝!這是我的問題......是的,它在文檔中說得很對。哎呀。 – OEP