Open CV addWeighted Error



嗨,我正试图在网络摄像头上绘制一些透明的形状。

我遇到错误输入参数的大小不匹配。我已经检查了我的代码,无法识别故障

    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

我已经检查了垫子形状和垫子网络摄像头是否属于同一行和同一列。有什么东西我错过了吗?

您检查了"shape"one_answers"网络摄像头"的宽度和高度,但没有检查它们的类型。如果不相同(通道的深度和数量),则该功能将失败。

此外,没有必要初始化"极化"。它将由addWeighted()根据输入图像的宽度、高度和类型创建。

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

所以CCD_ 2应该起作用。

最新更新