打开CV添加加权错误

时间:2014-10-01 08:24:54

标签: opencv

您好我正在尝试在网络摄像头Feed上绘制一些透明的形状。

我遇到错误输入参数的大小不匹配。我检查了我的代码并且无法识别错误

    double alpha = 0.8;
    Mat polarize(480, 640, CV_8UC4);

    Size s = webcam.size();
    double rows = s.height;
    double cols = s.width;
    std::cout << "Webcam R " << rows << "   C " << cols << std::endl;

    s = shape.size();
    rows = s.height;
    cols = s.width;

    std::cout << "Shape R " << rows << "   C " << cols << std::endl;


    addWeighted(shape, alpha, webcam, 1.0 - alpha, 0.0, polarize); // Error Here

我已经检查过Mat形状和Mat网络摄像头是同一行和列。有没有我错过的东西?

2 个答案:

答案 0 :(得分:1)

您检查了“形状”和“网络摄像头”的宽度和高度,但没有检查其类型。如果它不相同(深度和通道数),则功能将失败。

此外,无需初始化“极化”。它将由addWeighted()根据输入图像的宽度,高度和类型创建。

答案 1 :(得分:0)

我认为网络摄像头是从cv::VideoCapture对象复制的,该对象应该是3通道矩阵。

所以Mat polarize(480, 640, CV_8UC3);应该有用。