嗨,我正试图在网络摄像头上绘制一些透明的形状。
我遇到错误输入参数的大小不匹配。我已经检查了我的代码,无法识别故障
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应该起作用。