我正在尝试使用Farneback方法计算密集光流,并且我面临以下错误:错误:(-215)scn == 1&&函数ipp_cvtColor中的(dcn == 3 || dcn == 4)
我的代码:
Mat flow, cflow, frame1,frame2;
UMat gray1,gray2, uflow;
namedWindow("flow", 1);
frame1 = imread("./car1.jpg", IMREAD_COLOR);
frame2 = imread("./car2.jpg", IMREAD_COLOR);
cvtColor(frame1, gray1, COLOR_BGR2GRAY);
cvtColor(frame2, gray2, COLOR_BGR2GRAY);
calcOpticalFlowFarneback(gray2, gray1, uflow, 0.5, 3, 15, 3, 5, 1.2, 0);
cvtColor(frame2, cflow, COLOR_GRAY2BGR);
uflow.copyTo(flow);
drawOptFlowMap(flow, cflow, 16, 1.5, Scalar(0, 255, 0));
imshow("flow", cflow);
答案 0 :(得分:1)
Thuis line
cvtColor(frame2, cflow, COLOR_GRAY2BGR);
可能是罪魁祸首。
在上面一行中,您使用frame2
将frame2 = imread("./car2.jpg", IMREAD_COLOR);
作为彩色图片加载,但现在您正尝试将其转换为,而不是灰色,这似乎不合逻辑。