Scalar数据类型
首先单词scalar的意思是标量,但是我们经常可以看到Scalar是包含多个值的,很像是一个向量,这是怎么回事呢?很是让人感觉困惑。先收起我们的困惑,首先来看看,Scalar的定义:
- typedef struct Scalar
- {
- double val[4];
- }Scalar;
可以看到,Scalar是一个由长度为4的数组作为元素构成的结构体,Scalar最多可以存储四个值,没有提供的值默认是0。
使用:
Scalar常用的使用场景如下:
- Mat M(7,7,CV_32FC2,Scalar(1,3));
上面的代码表示:创建一个2通道,且每个通道的值都为(1,3),深度为32,7行7列的图像矩阵。CV_32F表示每个元素的值的类型为32位浮点数,C2表示通道数为2,Scalar(1,3)表示对矩阵每个元素都赋值为(1,3),第一个通道中的值都是1,第二个通道中的值都是3.
实例1:
- #include <iostream>
- #include <opencv2/highgui/highgui.hpp>
- #include <opencv2/core/core.hpp>
- #include <opencv2/imgproc/imgproc.hpp>
- #include <stdio.h>
- using namespace std;
- using namespace cv;
- void scalar_demo1(){
- Mat M(4,4,CV_32FC2,Scalar(1,3));
- cout<<M<<endl;
- }
- void scalar_demo2(){
- Mat M(4,4,CV_32FC3,Scalar(1,2,3));
- cout<<M<<endl;
- }
- void scalar_demo3(){
- Mat M(4,4,CV_32FC4,Scalar(1,2,3));
- cout<<M<<endl;
- }
- int main(void)
- {
- //resize_img();
- //convert_color_space();
- scalar_demo1();
- cout<<"**********************************"<<endl;
- scalar_demo2();
- cout<<"**********************************"<<endl;
- scalar_demo3();
- return 0;
- }
运行以上代码输出如下,可以发现最后一个矩阵是4通道的,但是我们在初始化的时候只给出了三个通道的值,所以第四个通道的值都默认为0。
实例2:
- #include <iostream>
- #include <opencv2/highgui/highgui.hpp>
- #include <opencv2/core/core.hpp>
- #include <opencv2/imgproc/imgproc.hpp>
- #include <stdio.h>
- using namespace std;
- using namespace cv;
- void scalar_demo4(){
- Mat blue_m(256,256,CV_8UC3,Scalar(255,0,0));
- Mat green_m(256,256,CV_8UC3,Scalar(0,255,0));
- Mat red_m(256,256,CV_8UC3,Scalar(0,0,255));
- imshow("Blue",blue_m);
- waitKey(0);
- imshow("Green",green_m);
- waitKey(0);
- imshow("Red",red_m);
- waitKey(0);
- }
- int main(void)
- {
- scalar_demo4();
- return 0;
- }
Scalar数据类型相关推荐
- OpenCV学习之Scalar数据类型
名词解释 首先看Scalar的英文释义: scalar的意思是标量,标量是什么意思呢?亦称"无向量".有些物理量,只具有数值大小,而没有方向,部分有正负之分.物理学中,标量(或作纯 ...
- OpenCV:Scalar数据类型理解
文章目录 Scalar 定义: 使用: 案例1:通道的建立与打印 案例2:打印相同通道数矩阵图像 Scalar 定义: 首先单词scalar的意思是标量,但是我们经常可以看到Scalar是包含多个值的 ...
- OpenCV学习笔记(3)——Scalar数据类型理解
https://blog.csdn.net/liuweiyuxiang/article/details/76929534
- oracle 赋值表数据类型,PL/SQL数据类型及操作符
标量(scalar)数据类型 标量(scalar)数据类型没有内部组件,他们大致可分为以下四类: . number . character . date/time . boolean 表1显示了数字数 ...
- ORACLE数据库数据类型
Oracle的数据类型 Oracle的数据类型分为标量(Scalar)类型.复合(Composite)类型.引用(Reference)类型和LOB(Large Object)类型4种类型. 因为标量类 ...
- 修改服务器返回数据类型,服务器返回数据类型
服务器返回数据类型 内容精选 换一换 根据给定的裸金属服务器ID列表,批量重启裸金属服务器.一次最多可以重启1000台.重启裸金属服务器属于异步API,接口调用成功只表示请求下发成功,任务执行结果请通 ...
- PL/SQL七复合数据结构
PL/SQL有两种复合数据结构:记录和集合.记录由不同的域组成,集合由不同的元素组成. 记录: 记录是PL/SQL的一种复合数据结构,scalar数据类型和其他数据类型只是简单的在包一级进行预定义,但 ...
- 在Oracle中不通过存储过程一次执行多条SQL语句Oracle PL/SQL
PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE 服务器和其他工具中了,近几年中更多的开发人员和DBA开始使用PL/SQL,本文将讲述PL/SQL ...
- opencv学习笔记之像素处理
文章目录 前言 一.多通道的分离合并 多通道分离函数split() 多通道合并函数merge() 二.图像像素统计 计算图像的平均值和标准差 前言 记录opencv有关像素操作的一些函数和功能 一.多 ...
最新文章
- 动态规划(DP)通俗讲解
- 领域驱动设计:软件核心复杂性应对之道
- 菜鸟成长日记(四)之WMIC简单命令应用
- 第一章 DevOps概述
- JAVA字符串数学公式运算-辅助类-支持浮点数错误纠正-低消耗-高可用性-小数点后面保留16位小数
- java执行linux命令
- Cloud Foundry Java客户端–流事件
- 链表选择排序算法功能实现演示
- 一个简单的crontab
- 关于微信服务商统一下单需要注意的几个问题
- 201521123115 《Java程序设计》第3周学习总结
- 史上最失败系统!微软正式终止对Vista支持
- Solidity入门学习
- 云计算机教室 国家标准,计算机云网络教室建设方案
- python将图片合并到PDF
- 《大学》修身、齐家、治国、平天下
- 用TELNET登录QQ邮箱
- c#安卓连接sqlserver_C#手把手教你玩微信自动化
- 【计算机图形学 】扫描线多边形填充算法 | OpenGL+鼠标交互
- yum报错网络不可达,但是配置的网络能够ping通