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

相关推荐
有才不一定有德15 分钟前
深入剖析 MetaGPT 中的提示词工程:WriteCode 动作的提示词设计
人工智能·aigc·提示词工程
花月mmc40 分钟前
CanMV-K230 AI学习笔记系列
人工智能·笔记·学习
s1ckrain1 小时前
【论文阅读】ON THE ROLE OF ATTENTION HEADS IN LARGE LANGUAGE MODEL SAFETY
论文阅读·人工智能·语言模型·大模型安全
Jackilina_Stone1 小时前
【论文|复现】YOLOFuse:面向多模态目标检测的双流融合框架
人工智能·python·目标检测·计算机视觉·融合
Tony沈哲1 小时前
OpenCV 图像调色优化实录:基于图像金字塔的 RAW / HEIC 文件加载与调色实践
opencv·算法
Java中文社群1 小时前
Coze开源版?别吹了!
人工智能·后端·开源
机器之心1 小时前
硬核「吵」了30分钟:这场大模型圆桌,把AI行业的分歧说透了
人工智能
音视频牛哥1 小时前
RTSP|RTMP播放器 in Unity:开源不够用?从工程视角重新定义播放器选型
人工智能·计算机视觉·直播
不失者2 小时前
关于AI时代的一点思考
人工智能·后端·程序员
好奇心笔记2 小时前
D1数据库实战:SQLite在云端的华丽转身
人工智能·后端