当前位置: 首页 > news >正文

opencv mat用法赋值克隆的操作和一些基本属性

//Mat基本结构  (头部  数据部分)
//赋值的话 就是修改了指针位置  但还是指向了原来数据 并没创建数据  本质上并没有变
//只有克隆或者拷贝时  它才会真正复制一份数据

//代码实现
//创建方法 - 克隆
//Mat m1 = src.clone();

//复制
//Mat m2;
//src.copyTo(m2);

//赋值法    修改了指针位置 
//Mat m3=src;

//创建空白图像   方法
//Mat m4 = Mat::zeros(src.size(), src.type());
//Mat m5 = Mat::zeros(size(512,512),CV_8UC3);
//Mat m6 = Mat::zeros(size(512,512),CV_8UC3);

//Mat kernel=(Mat_<char>(3,3)<<0,-1,0,
//-1,5,-1,
//0, -1, 0);

Mat m3 = Mat::zeros(Size(8, 8), CV_8UC1); 

Mat m3 = Mat::zeros(Size(8, 8), CV_8UC3);// CV_8UC1是类型
    //cv_8uc1正是这些灰度值的基本数据类型之一,其中8表示数据量为8位,
    //即1字节;u表示无符号类型;c表示char类型,即字符型;1表示每个像素只有1个色道,即灰度值。

 

 std::cout << "width:" << m3.cols << "高度" << m3.rows 
    <<"channels通道数"<<m3.channels()<<std::endl;

 

 修改为ones                  结果如下

 将数字改成3   输出结果变为1 0 0 1 0 0 1 0 0 1 0 0.........

好,把ones改回来,此时,若是想给通道数值赋值

//赋值
    m3 = Scalar(127, 127, 127); 

 

还可以创建成图片  代码修改为       Mat::zeros一定要有

 结果为

增加代码

Mat m4 = m3;//赋值法    修改了指针位置 
 m4= Scalar(0, 255, 255);
 imshow("图像", m3);//输出图像 

注意看   输出的是m3,所以证明赋值法改变了指针位置

若代码为这样:

Mat m4 = m3.clone();
 m4= Scalar(0, 255, 255);
 imshow("图像3", m3);//输出原来m3蓝色图像 

imshow("图像4", m4);//输出为黄色

 Mat m4 = m3;//赋值法    修改了指针位置

http://www.lryc.cn/news/299833.html

相关文章:

  • 【使用IDEA总结】01——新增作者信息、方法参数返回值
  • ElasticSearch分词器和相关性详解
  • DolphinScheduler安装与配置
  • Qt之条件变量QWaitCondition详解
  • 作为国产大模型之光的智谱AI,究竟推出了多少模型?一篇文章带你详细了解!
  • 学习转置矩阵
  • AJAX——常用请求方法
  • sqlserver2012 解决日志大的问题
  • Vue3快速上手(三)Composition组合式API及setup用法
  • 【C++】内存五大区详解
  • Django学习笔记教程全解析:初步学习Django模型,初识API,以及Django的后台管理系统(Django全解析,保姆级教程)
  • Python学习之路-爬虫提高:selenium
  • Rust基础拾遗--进阶
  • 数据同步工具对比——SeaTunnel 、DataX、Sqoop、Flume、Flink CDC
  • 随机过程及应用学习笔记(四) 马尔可夫过程
  • prometheus
  • Vi 和 Vim 编辑器
  • 算法沉淀——队列+宽度优先搜索(BFS)(leetcode真题剖析)
  • 编辑器的新选择(基本不用配置)
  • 算法沉淀——栈(leetcode真题剖析)
  • 耳机壳UV树脂制作私模定制耳塞需要注意什么问题?
  • easyx搭建项目-永七大作战(割草游戏)
  • nginx命名location跳转的模块上下文继承
  • 洛谷 P2678 [NOIP2015 提高组] 跳石头 (Java)
  • 第2讲投票系统后端架构搭建
  • Flask 入门7:使用 Flask-Moment 本地化日期和时间
  • FileZilla Server 1.8.1内网搭建
  • C++LNK1207中的 PDB 格式不兼容;请删除并重新生成
  • 小白学习Halcon100例:如何利用动态阈值分割图像进行PCB印刷缺陷检测?
  • 车载诊断协议DoIP系列 —— 车载以太网诊断需求规范(网关、路由)