名词解释

首先看Scalar的英文释义:

scalar的意思是标量,标量是什么意思呢?亦称“无向量”。有些物理量,只具有数值大小,而没有方向,部分有正负之分。物理学中,标量(或作纯量)指在坐标变换下保持不变的物理量。用通俗的说法,标量是只有大小,没有方向的量。首先来看看,Scalar在OpenCV中的定义:

Scalar原来是的别名,那么Scalar_又是什么呢?看他在OpenCV中的定义:

原来Scalar是一个包含四个元素vector的模板类,他继承于Vec,由于它继承于Vec<Tp, 4> , Scalar_ 和 Scalar都能用于作为典型的包含四个元素的 vectors,此外,他们还能和CvScalar相互转换, Scalar类型在OPenCV中被广泛用于传递像素值。

Scalar应用实例:

cv::Mat m(8, 8, CV_32FC2, cv::Scalar(3, 4));

上面的代码表示:创建一个2通道,且每个通道的值都为(3,4),深度为32,8行8列的图像矩阵。CV_32F表示每个元素的值的类型为32位浮点数,C2表示通道数为2,Scalar(3,4)表示对矩阵每个元素都赋值为(3,4),第一个通道中的值都是3,第二个通道中的值都是4。

示例代码1:

#include <iostream>
#include <opencv2/opencv.hpp>
​
using namespace cv;
​
int main()
{cv::Mat m(3, 4, CV_32FC2, cv::Scalar(3, 4));std::cout << m << std::endl;
}

运行结果如下:

示例代码2:

#include <iostream>
#include <opencv2/opencv.hpp>
​
using namespace cv;
​
int main()
{//cv::Mat m(3, 4, CV_32FC2, cv::Scalar(3, 4));//std::cout << m << std::endl;
​Mat b(256, 256, CV_32FC3, cv::Scalar(255, 0, 0));Mat g(256, 256, CV_32FC3, cv::Scalar(0, 255, 0));Mat r(256, 256, CV_32FC3, cv::Scalar(0, 0, 255));imshow("blue", b);imshow("green", g);imshow("red", r);waitKey(0);
}

运行结果如下图,也可以看出,OpenCV里图像存储是按BGR顺序来存储的。

OpenCV学习之Scalar数据类型相关推荐

  1. OpenCV学习笔记(十一)(十二)(十三)(十四)(十五)

    OpenCV学习笔记(十一)--谈谈像素的类型和对Templates的限制使用 Templates是c++的一个很强大的特征,可以是数据结构更加安全高效.但也会增加编译时间和代码的长度,当函数被频繁调 ...

  2. OpenCV学习笔记(六)(七)(八)(九)(十)

    OpenCV学习笔记(六)--对XML和YAML文件实现I/O操作 1. XML.YAML文件的打开和关闭 XML\YAML文件在OpenCV中的数据结构为FileStorage,打开操作例如: [c ...

  3. openCV学习教程(一):Mat类的使用

    Opencv3-Study Opencv学习笔记(八) -- 图像色彩空间转换 yuv422转opencv mat显示 OpenCv2 学习笔记(1) Mat创建.复制.释放 OpenCv学习笔记(二 ...

  4. OpenCV学习笔记之Mat

    一. Mat介绍 在2001年刚刚出现的时候,OpenCV基于 C 语言接口而建.为了在内存(memory)中存放图像,当时采用名为 IplImage 的C语言结构体,时至今日这仍出现在大多数的旧版教 ...

  5. OpenCV学习笔记(五):Mat结构

    在之前的OpenCV学习笔记(一)用到的几种显示图像的方法中其中一种就是Mat.Mat结构在OpenCV 2.0后才得到广泛应用,相对于OpenCV1.0时代中的IplImage,它有个好处就是不用再 ...

  6. opencv学习笔记之像素处理

    文章目录 前言 一.多通道的分离合并 多通道分离函数split() 多通道合并函数merge() 二.图像像素统计 计算图像的平均值和标准差 前言 记录opencv有关像素操作的一些函数和功能 一.多 ...

  7. OpenCV学习之基本概念

    OpenCV学习之基本概念 文章目录 OpenCV学习之基本概念 1.访问像素级 2.基本API概念-Mat 3.直方图 1.访问像素级 方法一:使用模板函数at<>,必须指出矩阵单元类型 ...

  8. OpenCV学习(二十三) :模板匹配:matchTemplate(),minMaxLoc()

    OpenCV学习(二十三) :模板匹配:matchTemplate() 1.概述 模板匹配是一种最原始.最基本的模式识别方法,研究某一特定对象物的图案位于图像的什么地方,进而识别对象物,这就是一个匹配 ...

  9. 结合opencv学习DIP

    关于传统的DIP中的图像特征,描述子提取及匹配问题,参考 结合openCV学习DIP之传统图像特征与匹配​​​​​​​ 第一部分DIP基础 图像的简单操作 imread()加载图像 imread加载图 ...

最新文章

  1. android项目中记录ListView滚动停止位置与设置显示位置
  2. Tomcat类加载器机制
  3. 对c语言课程的心得体会,C语言课程设计心得体会
  4. halcon的算子清点:Chapter 10 3d匹配
  5. springcloud alibaba + seata 1.3.0 集成文档
  6. JZOJ 4161. 于神之怒
  7. 猎豹浏览器插件无法加载怎么办 插件无法加载解决方法
  8. Maven依赖排除 禁止依赖传递 取消依赖的方法
  9. 【高并发】java JUC中的Semaphore(信号量)
  10. mats测试所有显存命令_RGBLCD液晶屏层叠显示测试
  11. python递归函数对照表_python-访问递归函数中附加到列表的值
  12. 系统学习NLP(十三)--词向量(word2vec原理)
  13. php学生签到系统论文,学生签到系统设计与实现.doc
  14. 深度 ghost linux系统,用Ghost实现Linux系统的备份
  15. thinkphp5基于php的校园微博系统--php-计算机毕业设计
  16. HDU5142 NPY and FFT BestCoder Round #22 1001
  17. iframe嵌入微信公众号页面(有图片)
  18. 善待自己 改变命运的N个人生哲理
  19. “远见者”特斯拉AI主管Karpathy|深度学习崛起十年
  20. 这个季节有离别——观《Sad Movie》有感

热门文章

  1. boost::log::sinks::file用法的测试程序
  2. boost::hana::on用法的测试程序
  3. GDCM:获取假冒的Identify File的测试程序
  4. boost::convert模块实现默认转换器fail失败的测试程序
  5. Boost:bind绑定状态的测试程序
  6. ITK:读取DICOM系列并写入3D图像
  7. VTK:Filtering之SurfaceFromUnorganizedPointsWithPostProc
  8. C语言quick sort快速排序的算法(附完整源码)
  9. OpenGL Distance Field文本的实例
  10. C++bidirectional dijkstra双向最短路径算法(附完整源码)