openCV 图像对象的创建和赋值

文章目录

一、赋值

赋值操作是将一个cv::Mat对象的数据复制到另一个对象中。赋值操作使用的是浅拷贝(shallow copy),即两个对象共享相同的数据内存。这意味着对一个对象的修改会影响到另一个对象

cpp 复制代码
cv::Mat src = cv::imread("image.jpg");  // 加载图像
cv::Mat dst;
dst = src;  // 执行赋值操作,将src的数据复制到dst

二、克隆

克隆操作是创建一个新的cv::Mat对象,并复制源对象的数据到新对象中。克隆操作使用的是深拷贝(deep copy),即两个对象具有独立的数据内存。这意味着对一个对象的修改不会影响到另一个对象

cpp 复制代码
cv::Mat src = cv::imread("image.jpg");  // 加载图像
cv::Mat clone = src.clone();  // 克隆操作,创建一个新的对象并复制数据

三、拷贝

OpenCV中,cv::Mat类提供了copyTo函数,用于将一个cv::Mat对象的数据复制到另一个对象中,并且可以对数据进行一些转换或处理

cpp 复制代码
void cv::Mat::copyTo(OutputArray dst) const;
void cv::Mat::copyTo(OutputArray dst, InputArray mask) const;

copyTo函数的行为如下:

  1. 如果目标dst对象与源对象具有相同的大小和类型,则直接将源对象的数据复制到目标对象中。
  2. 如果目标dst对象与源对象的大小或类型不匹配,则会重新分配目标对象的内存,并将源对象的数据复制到目标对象中。
  3. 如果提供了掩码mask,则只有满足掩码条件的源数据才会被复制到目标对象中,不满足掩码条件的数据将被忽略。

四、初始化

在OpenCV中,cv::Mat类提供了两个函数cv::Mat::ones和cv::Mat::zeros,用于创建指定大小和类型的全零或全一的矩阵

  • cv::Mat::ones函数用于创建一个大小为rows x cols的矩阵,并且所有元素的值都设置为1
    rows和cols是矩阵的行数和列数,type是矩阵的数据类型。常用的数据类型包括CV_8U(8位无符号整数)、CV_32F(32位浮点数)等
cpp 复制代码
cv::Mat cv::Mat::ones(int rows, int cols, int type);
//rows和cols是矩阵的行数和列数,type是矩阵的数据类型。常用的数据类型包括CV_8U(8位无符号整数)、CV_32F(32位浮点数)等
cv::Mat onesMat = cv::Mat::ones(3, 3, CV_32F);
//onesMat是一个大小为3x3的矩阵,所有元素的值都设置为1
  • cv::Mat::zeros函数用于创建一个大小为rows x cols的矩阵,并且所有元素的值都设置为0
cpp 复制代码
cv::Mat cv::Mat::zeros(int rows, int cols, int type);
//其中,rows和cols是矩阵的行数和列数,type是矩阵的数据类型
cv::Mat zerosMat = cv::Mat::zeros(3, 3, CV_8U);
//zerosMat是一个大小为3x3的矩阵,所有元素的值都设置为0

推荐一个零声学院免费教程,个人觉得老师讲得不错,

分享给大家:

C++初级课程链接:
https://ke.qq.com/course/444655?flowToken=1043280

Qt课程链接:
https://ke.qq.com/course/444655?flowToken=1044614

相关推荐
量子-Alex6 小时前
【大模型技术报告】Qwen2-VL大模型训练过程理解
人工智能
java1234_小锋7 小时前
【AI大模型舆情分析】微博舆情分析可视化系统(pytorch2+基于BERT大模型训练微调+flask+pandas+echarts) 实战(上)
人工智能·flask·大模型·bert
新缸中之脑7 小时前
Imagerouter.io: 免费图像生成API
人工智能
MM_MS7 小时前
Halcon图像点运算、获取直方图、直方图均衡化
图像处理·人工智能·算法·目标检测·计算机视觉·c#·视觉检测
阿杰学AI7 小时前
AI核心知识77——大语言模型之Joint Training(简洁且通俗易懂版)
人工智能·深度学习·ai·语言模型·rag·联合训练·joint training
DFT计算杂谈7 小时前
VASP+PHONOPY+pypolymlpj计算不同温度下声子谱,附批处理脚本
java·前端·数据库·人工智能·python
星爷AG I7 小时前
9-23 动作意图理解(AGI基础理论)
人工智能·agi
九尾狐ai7 小时前
从九尾狐AI实战案例解析AI短视频获客的系统架构与实现方案
人工智能
格林威7 小时前
Baumer相机金属弹簧圈数自动计数:用于来料快速检验的 6 个核心算法,附 OpenCV+Halcon 实战代码!
人工智能·数码相机·opencv·算法·计算机视觉·视觉检测·堡盟相机
万行7 小时前
SQL进阶&索引篇
开发语言·数据库·人工智能·sql