【问题标题】:Dense optical flow between two frames两帧之间的密集光流
【发布时间】:2016-03-30 15:13:12
【问题描述】:

我正在尝试使用 Farneback 方法计算密集光流,但遇到以下错误:error: (-215) scn == 1 && (dcn == 3 || dcn == 4) in function ipp_cvtColor

我的代码:

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);

【问题讨论】:

    标签: c++ opencv


    【解决方案1】:

    泰晤士线

    cvtColor(frame2, cflow, COLOR_GRAY2BGR);
    

    可能是罪魁祸首。 在上面的一行中,您使用frame2 = imread("./car2.jpg", IMREAD_COLOR);frame2 加载为彩色图像,但现在您尝试将其从灰色 转换,这似乎不合逻辑。

    【讨论】:

    • error: (-215) size.width>0 && size.height>0 in function imshow 现在发生这种情况...
    • 错误有点神秘地告诉你,你传递给imshowMat 是空的。 IE。它的至少一个维度是零。您可能应该查看您的矩阵,看看哪个矩阵用于何处以及用于什么目的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-14
    • 1970-01-01
    • 1970-01-01
    • 2012-06-17
    • 2020-06-29
    • 2022-03-23
    • 1970-01-01
    相关资源
    最近更新 更多