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

相关推荐
Hello123网站2 分钟前
探迹SalesGPT
人工智能·ai工具
摘星星的屋顶3 分钟前
论文阅读记录之《VelocityGPT 》
论文阅读·人工智能·深度学习·学习
格林威18 分钟前
工业相机如何通过光度立体成像技术实现高效精准的2.5D缺陷检测
人工智能·深度学习·数码相机·yolo·计算机视觉
MarkHD23 分钟前
大语言模型入门指南:从原理到实践应用
人工智能·语言模型·自然语言处理
A尘埃25 分钟前
NLP(自然语言处理, Natural Language Processing)
人工智能·自然语言处理·nlp
dlraba80225 分钟前
机器学习实战(二):Pandas 特征工程与模型协同进阶
人工智能·机器学习·pandas
一碗白开水一27 分钟前
【第19话:定位建图】SLAM点云配准之3D-3D ICP(Iterative Closest Point)方法详解
人工智能·算法
mit6.82428 分钟前
[rStar] 策略与奖励大语言模型
人工智能·语言模型
CV-杨帆36 分钟前
论文阅读:arxiv 2023 Large Language Models are Not Stable Recommender Systems
论文阅读·人工智能·语言模型
羊羊小栈43 分钟前
基于「YOLO目标检测 + 多模态AI分析」的植物病害检测分析系统(vue+flask+数据集+模型训练)
人工智能·yolo·目标检测·毕业设计·创业创新·大作业