我想在一个3通道的opencv矩阵中合并3个单色相机图像。我可以通过以下方式尝试:
cv::Mat merged;
std::vector<cv::Mat> channels[3];
while(1){
channels[0]=Camera1->getNextFrameSWTrig(); //give back frame_time and frame_num
channels[1]=Camera2->getNextFrameSWTrig(); //give back frame_time and frame_num
channels[2]=Camera3->getNextFrameSWTrig();
cv::merge(channels, merged);
(*buffer).push_back(merged.clone());
}
但是出现以下错误消息:
没有用于调用“合并”的匹配功能
我在OpenCV文档中找到了全部>
C ++:void merge(InputArrayOfArrays mv,OutputArray dst)
答案 0 :(得分:3)
使用
std::vector<cv::Mat> channels[3];
^ ^
您要创建一个包含3个std::vector
的数组,而您想要一个包含3个元素的std::vector
:
std::vector<cv::Mat> channels(3);
^ ^