You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenCV C++中Stitcher::stitch()传递mask的正确方式

问题解答
  • 正确的mask参数类型是std::vectorcv::Mat,不是你用的std::vector<std::vector<cv::Mat>>。
  • 你碰到的编译错误,核心原因是Stitcher的stitch接口要求每个输入图像对应一个单通道mask矩阵(一般用CV_8U类型),外层用vector包一层就行,不需要嵌套vector。
  • 注意mask向量的长度得和输入图像向量的长度一致,每个mask的尺寸要和对应图像完全匹配——mask里像素值为0的区域会被排除在关键点检测和拼接计算外,非0区域正常处理。
  • 修正后的调用示例大概是这样:
    std::vector<cv::Mat> images = {img1, img2, img3};
    std::vector<cv::Mat> masks = {mask1, mask2, mask3};
    cv::Mat result;
    cv::Stitcher::Status status = cv::Stitcher::createDefault()->stitch(images, masks, result);
    

内容的提问来源于stack exchange,提问作者Ivan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 08:02:01