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);

相关推荐
Candice Can1 分钟前
【机器学习】吴恩达机器学习Lecture3-Linear Algebra review(optional) 线性代数回顾
人工智能·线性代数·机器学习·吴恩达机器学习
ZPC82102 分钟前
机器人手眼标定
人工智能·python·数码相机·算法·机器人
张艾拉 Fun AI Everyday3 分钟前
Sparkli AI:塑造 5-12 岁孩子“金钱观”和“商业思维”的闯关游戏
人工智能·游戏
机器学习之心HML3 分钟前
PGA+MKAN+Timexer时间序列预测模型Pytorch架构
人工智能·pytorch·python
爱打代码的小林4 分钟前
基于 OpenCV+Dlib 的实时人脸分析系统:年龄性别检测 + 疲劳监测 + 表情识别
人工智能·opencv·计算机视觉
jianwuhuang824 分钟前
豆包内容导出图片
人工智能·chatgpt
瑞华丽PLM5 分钟前
从设计到制造的“断裂带”:汽车零部件企业如何通过 eBOM 与 mBOM 的无缝转化降低成本?
大数据·人工智能·汽车·制造·国产plm·瑞华丽plm·瑞华丽
查无此人byebye7 分钟前
阿里开源Wan2.2模型全面解析:MoE架构加持,电影级视频生成触手可及
人工智能·pytorch·python·深度学习·架构·开源·音视频
果粒蹬i9 分钟前
降维实战:PCA与LDA在sklearn中的实现
人工智能·python·sklearn
小龙报11 分钟前
【数据结构与算法】单链表核心精讲:从概念到实战,吃透指针与动态内存操作
c语言·开发语言·数据结构·c++·人工智能·算法·链表