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的车辆检测与追踪的实现
最近老师布置了一个作业,是做一个基于视频的车辆检测与追踪,用了大概两周的时间做了一个简单的,效果不是很理想,但抑制不住想把自己的一些认识写下来,这里就把一些网络上的博客整理一下分享给大家,希望帮助到大 ...
随机推荐
- Spring MVC基于注解@Controller和@RequestMapping开发的一个例子
1.创建web项目 2.在springmvc的配置文件中指定注解驱动,配置扫描器 在 Spring MVC 中使用扫描机制找到应用中所有基于注解的控制器类,所以,为了让控制器类被 Spring MVC ...
- Bank1
Bank1: package banking1; //账户 public class Account { private double balance;// 账户余额 public Account(d ...
- python3程序开发指南——第1章 笔记
python文件的扩展名为.py ,但是python GUI程序的扩展名为.pyw 在python中,注释以#开始,作用范围为该行 IDLE提供了三个关键功能:输入python表达式与代码,并在pyt ...
- 小技巧:用 GitBook 组织 Markdown 文档
喜欢用 Markdown 写文档,那怎么把一个个 Markdown 文档组成在一起呢? 这篇文章,分享了一个用 GitBook 来组织 Markdown 文档的办法.一起了解下吧. Markdown ...
- javascript -字符串常用方法
let str ="stRing" toUpperCase / toLowerCase 大小写 toUpperCase()把一个字符串全部变为大写; toLowerCas ...
- 我终于看懂了HBase,太不容易了...
前言 只有光头才能变强. 文本已收录至我的GitHub精选文章,欢迎Star:https://github.com/ZhongFuCheng3y/3y 在我还不了解分布式和大数据的时候已经听说过HBa ...
- 【HIVE】数据分析HQL的编写方法/思路
SQL编写一般思路: 1)复杂的查询,先划分为小任务,以降低难度.分别实现各个小任务后,再进行汇总: 2)涉及多表时,先进行联表查询: 3)简单分组,一般只需要group by即可: 4)组内TopN ...
- (Java实现) 活动选择
活动选择的类似问题都可以这么写 import java.util.ArrayList; public class huodongxuanze { /** * //算法导论中活动选择问题动态规划求解 * ...
- Java实现 LeetCode 79 单词搜索
79. 单词搜索 给定一个二维网格和一个单词,找出该单词是否存在于网格中. 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中"相邻"单元格是那些水平相邻或垂直相邻的单元格. ...
- opencl(7) 内核执行命令入队]工作组、工作项
1:将内核执行命令入队(该命令可被多个工作项执行) cl_int clEnqueueNDRangeKernel( cl_command_queue command_queue, cl_kernel k ...