C++/OpenCV:Mat初始化赋值误区

cpp 复制代码
#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main() {
    int pic_height = 2;
    int pic_width = 2;

    {
        Mat alpha_map = Mat::ones(pic_height, pic_width, CV_32FC4);
        cout << "alpha_map = " << endl << alpha_map << endl;
        //alpha_map =
        //    [1, 0, 0, 0, 1, 0, 0, 0;
        //     1, 0, 0, 0, 1, 0, 0, 0]
    }
    {
        Mat alpha_map = Mat::ones(pic_height, pic_width, CV_32FC4);
        alpha_map.setTo(1);
        cout << "alpha_map = " << endl << alpha_map << endl;
        //alpha_map =
        //    [1, 1, 1, 1, 1, 1, 1, 1;
        //     1, 1, 1, 1, 1, 1, 1, 1]
    }
    {
        Mat alpha_map(pic_height, pic_width, CV_32FC4, Scalar(1.0, 1.0, 1.0, 1.0));
        cout << "alpha_map = " << endl << alpha_map << endl;
        //alpha_map =
        //    [1, 1, 1, 1, 1, 1, 1, 1;
        //     1, 1, 1, 1, 1, 1, 1, 1]
    }
    return 0;
}

一直以为下面这样会将每个通道均初始化为1,导致一个bug调了半天根本没有怀疑过这里。

连deepseek和chatgpt也这样说,实际上只会对一个通道初始化。

Mat alpha_map = Mat::ones(pic_height, pic_width, CV_32FC4);

相关推荐
陈天伟教授26 分钟前
图解人工智能(58)人工智能应用-围棋国手
人工智能·语音识别·机器翻译
闻道参看29 分钟前
2026年AI优质企业培训系统综合测评:合规管控/数据量化
人工智能
老虾头43 分钟前
科技贴近烟火:本地化 AI,赋能各行各业日常经营
人工智能
毒爪的小新1 小时前
Linux 环境极速部署 vLLM:从零搭建生产级大模型推理服务
linux·人工智能·ai·语言模型·vllm
老大白菜1 小时前
25美元,DIY开源可穿戴智能AI眼镜:Arduino+乐鑫ESP32+DeepSeek项目
人工智能
岁月宁静2 小时前
RAG 文档摄入全链路,从原理到生产落地
vue.js·人工智能·python
小和尚同志2 小时前
AI 自动化测试探索(一):Playwright MCP
前端·人工智能·aigc
硅谷秋水2 小时前
面向长上下文自动驾驶的规划对齐Token压缩
人工智能·深度学习·机器学习·计算机视觉·自动驾驶
郭泽斌之心2 小时前
MQL5 EA 怎么和外部程序通信?文件三件套协议:参数热更新不重启、状态心跳、远程触发
人工智能·经验分享·深度学习·ea·fay数字人·easydeal