opencv Scalar
template<typename _Tp> class Scalar_ : public Vec<_Tp, 4>
{
public:
//! various constructors
Scalar_();
Scalar_(_Tp v0, _Tp v1, _Tp v2=0, _Tp v3=0);
Scalar_(_Tp v0);
template<typename _Tp2, int cn>
Scalar_(const Vec<_Tp2, cn>& v);
//! returns a scalar with all elements set to v0
static Scalar_<_Tp> all(_Tp v0);
//! conversion to another data type
template<typename T2> operator Scalar_<T2>() const;
//! per-element product
Scalar_<_Tp> mul(const Scalar_<_Tp>& a, double scale=1 ) const;
// returns (v0, -v1, -v2, -v3)
Scalar_<_Tp> conj() const;
// returns true iff v1 == v2 == v3 == 0
bool isReal() const;
};
typedef Scalar_<double> Scalar; 可以看出Scalar是一个由长度为4的数组作为元素构成的类,Scalar最多可以存储四个值,没有提供的值默认是0,一般用来存放像素值。
#include<opencv2/core/core.hpp>
#include<iostream>
int main(){
cv::Scalar scalar(125);
cv::Mat mat(2,3,CV_8UC1,scalar);
std::cout<<mat<<std::endl;
std::cout<<std::endl;
cv::Scalar scalar1(0,255);
cv::Mat mat1(4,4,CV_32FC2,scalar1);
std::cout<<mat1<<std::endl;
std::cout<<std::endl;
cv::Scalar scalar2(0,255,255);
cv::Mat mat2(4,4,CV_32FC3,scalar2);
std::cout<<mat2<<std::endl;
std::cout<<std::endl;
cv::Scalar scalar3(0,255,255,0);
cv::Mat mat3(4,4,CV_32FC4,scalar3);
std::cout<<mat3<<std::endl;
return 0;
}
cv::Mat mat(2,3,CV_8UC1,scalar)表示创建单通道,且每个通道的值都为125,深度为8,2行3列的图像矩阵。
CV_8UC1表示每个元素的值的类型为8位无符号整形,C1表示通道数为1,scalar(125)表示对矩阵每个元素都赋值为125.
cv::Mat mat1(4,4,CV_32FC2,scalar1)表示创建两通道,且每个通道的值分别为(0,255),深度为32,4行4列的图像矩阵。
CV_32FC2表示每个元素的值的类型为32位浮点数,C2表示通道数为2,scalar1(0,255)第一个通道中的值都是0,第二个通道中的值都是255。
cv::Mat mat2(4,4,CV_32FC3,scalar2)表示创建三通道,且每个通道的值分别为(0,255,255),深度为32,4行4列的图像矩阵。
CV_32FC3表示每个元素的值的类型为32位浮点数,C3表示通道数为3,scalar2(0,255,255)第一个通道中的值都是0,第二个通道中的值都是255,第三个通道中的值都是255。
cv::Mat mat3(4,4,CV_32FC4,scalar3)表示创建四通道,且每个通道的值分别为(0,255,255,0),深度为32,4行4列的图像矩阵。
CV_32FC4表示每个元素的值的类型为32位浮点数,C4表示通道数为4,scalar2(0,255,255,0)第一个通道中的值都是0,第二个通道中的值都是255,第三个通道中的值都是255,第四个通道中的值都是0。

#include<opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include<iostream> int main(){ cv::Mat mat(,,CV_32FC3,cv::Scalar(,,));
imshow("Scalar(0,0,0)",mat); cv::Mat mat1(,,CV_32FC3,cv::Scalar(,,));
imshow("Scalar(0,0,255)",mat1); cv::Mat mat2(,,CV_32FC3,cv::Scalar(,,));
imshow("Scalar(0,255,0)",mat2); cv::Mat mat3(,,CV_32FC3,cv::Scalar(,,));
imshow("Scalar(255,0,0)",mat3); cv::Mat mat4(,,CV_32FC3,cv::Scalar(,,));
imshow("Scalar(0,255,255)",mat4); cv::Mat mat5(,,CV_32FC3,cv::Scalar(,,));
imshow("Scalar(255,0,255)",mat5); cv::Mat mat6(,,CV_32FC3,cv::Scalar(,,));
imshow("Scalar(255,255,0)",mat6); cv::Mat mat7(,,CV_32FC3,cv::Scalar(,,));
imshow("Scalar(255,255,255)",mat7); cv::Mat mat8(,,CV_32FC4,cv::Scalar(,,,));
imshow("Scalar(0,0,0,255)",mat8); cv::Mat mat9(,,CV_32FC4,cv::Scalar(,,,));
imshow("Scalar(0,0,255,255)",mat9); cv::Mat mat10(,,CV_32FC4,cv::Scalar(,,,));
imshow("Scalar(0,255,0,255)",mat10); cv::Mat mat11(,,CV_32FC4,cv::Scalar(,,,));
imshow("Scalar(255,0,0,255)",mat11); cv::Mat mat12(,,CV_32FC4,cv::Scalar(,,,));
imshow("Scalar(0,255,255,255)",mat12); cv::Mat mat13(,,CV_32FC4,cv::Scalar(,,,));
imshow("Scalar(255,0,255,255)",mat13); cv::Mat mat14(,,CV_32FC4,cv::Scalar(,,,));
imshow("Scalar(255,255,0,255)",mat14); cv::Mat mat15(,,CV_32FC4,cv::Scalar(,,,));
imshow("Scalar(255,255,255,255)",mat15); cv::waitKey();
return ; }

opencv Scalar的更多相关文章
- 图像颜色--opencv scalar
Scalar定义可存放1—4个数值的数值,其结构体如下: typedef struct Scalar { double val[4]; }Scalar; 例如:Scalar s: 如果使用的图像是1通 ...
- 用cv::Scalar来设置opencv中图片的颜色
1 怎样使用cv::Scalar来设置opencv中的颜色 cv::Scalar的构造函数是cv::Scalar(v1, v2, v3, v4),前面的三个参数是依次设置BGR的,和RGB相反,第四个 ...
- OpenCv中基本数据类型--Point,Size,Rect,Scalar,Vec3b类类型的详细解释
头文件路径:opencv-2.4.9/modules/core/include/opencv2/core/core.hpp 一.Point类 在这些数据类型中,最简单的就是Point点类,Point类 ...
- OpenCV 中Scalar
参考来源: 1.https://blog.csdn.net/Eroslol/article/details/52525541 2.https://www.cnblogs.com/hustdc/p/68 ...
- opencv关于Mat类中的Scalar()---颜色赋值
这个 CvScalar就是一个可以用来存放4个double数值的数组(O'Reilly的书上写的是4个整型成员):一般用来存放像素值(不一定是灰度值哦)的,最多可以存放4个通道的. typedef s ...
- opencv学习笔记——Scalar数据结构的理解
首先看一下Scalar的定义 typedef struct Scalar { ]; }Scalar; 可以看到,Scalar是一个由长度为4的数组作为元素构成的结构体,Scalar最多可以存储四个值, ...
- OpenCV——创建Mat对象、格式化输出、常用数据结构和函数(point,vector、Scalar、Size、Rect、cvtColor)
创建Mat对象:
- opencv在图像显示中文
在图像定位和模式识别时,经常需要把结果标注到图片上,标注内容可以是数字字母.矩形框等(opencv支持的)或者是中文汉字(借助freetype). 1.显示数字/矩形框 #include <op ...
- 基于OpenCV的车辆检测与追踪的实现
最近老师布置了一个作业,是做一个基于视频的车辆检测与追踪,用了大概两周的时间做了一个简单的,效果不是很理想,但抑制不住想把自己的一些认识写下来,这里就把一些网络上的博客整理一下分享给大家,希望帮助到大 ...
随机推荐
- Java—JSON串转换成实体Bean对象模板
介绍 模板需求说明 开发中经常遇到前端传递过来的JSON串的转换,后端需要解析成对象,有解析成List的,也有解析成Map的. 依赖 <dependency> <groupId& ...
- git status 命令详解
git status命令表示:文件,文件夹在工作区,暂存区的状态,下图就是文件,文件夹三种状态: Changes to be committed: (use "git restore --s ...
- MongoDB学习(一) 安装与基本使用
链接:https://pan.baidu.com/s/1ogTDFJg3ZZc0CyzaTeswWg 提取码:2k0p 安装 // 将压缩包解压到指定目录 [bigdata@linux backup] ...
- Rocket - tilelink - RAMModel
https://mp.weixin.qq.com/s/9ccDTm6HytvfGN5R2CPoAQ 简单介绍RAMModel的实现. 1. 基本介绍 RAMModel用于定义内存 ...
- 分享按钮(QQ,微信,微博等)移入动画效果
ps:最近写的很多博客都是在以前在项目里写过的,之所以现在写出来,最大的目的就是希望自己以后用到的时候比较容易找,而且现在再写一遍,有助于加深印象! 很简单的效果,说先实现方式: 1.图标来自 阿里巴 ...
- Java实现 蓝桥杯 算法提高 高精度减法(JDK方法)
试题 算法提高 高精度减法 问题描述 高精度减法 输入格式 两行,表示两个非负整数a.b,且有a > b. 输出格式 一行,表示a与b的差 样例输入 1234567890987654321 99 ...
- Java实现 LeetCode 820 单词的压缩编码(字典树)
820. 单词的压缩编码 给定一个单词列表,我们将这个列表编码成一个索引字符串 S 与一个索引列表 A. 例如,如果这个列表是 ["time", "me", & ...
- Java实现 蓝桥杯 算法训练 数字三角形
算法训练 数字三角形 时间限制:1.0s 内存限制:256.0MB 问题描述 (图3.1-1)示出了一个数字三角形. 请编一个程序计算从顶至底的某处的一条路 径,使该路径所经过的数字的总和最大. ●每 ...
- java代码(7) ---guava之Bimap
guava之Bimap bimap的作用很清晰:它是一个——映射,可以通过key得到value,也可以通过value得到key 一.概述 1.bimap和普通HashMap区别 (1)在java集合类 ...
- SQL手工注入绕过过滤
1.考虑闭合:单引号 --> %27 空格-->%20 井号--> %23 : 构造闭合函数 %27teacher%23 2.判断过滤内容:union --> uniu ...