OpenCV中基本数据结构(2)_Scalar

Scalar是一个固定的四维大小的vector,一般是主要用于表示颜色RGBA各个颜色的值,其数据精度为double类型,Scalar类其实是Vec类的一个派生类,是只有1行4列的矩阵,对Vec不清楚的可以了解下https://blog.csdn.net/weixin_42730667/article/details/104121969

OpenCV中基本数据结构(2)_Scalar_第1张图片

Scalar定义

Scalar定义如下:

其实质是通过 Scalar_类来实现的,数据类型为double

 Scalar_类

整个Scalar_类相对比较简单如下:

OpenCV中基本数据结构(2)_Scalar_第2张图片

 总体使用方法如下:

Method Description
默认构造函数 cv::Scalar s;
带参数构造函数

一个参数:cv::Scalar s1(10);

两个参数:cv::Scalar s1(10,11)

三个参数一般为RGB:cv::Scalar s1(10,11,12)

四个参数RGBA:cv::Scalar s1(10,11,12,13)

copy构造函数

cv::Scalar s1(10)

cv::Scalar s2(s1)

mul(相乘) s1.mul(s2)
all 将所有元素都初始化该值:cv::Scalar s1=Scalar::all(110);
conj 返回:returns (v0, -v1, -v2, -v3)
isReal

如果 v1 == v2 == v3 == 0 返回true

其他返回false

使用用例:

#include 
#include "opencv2/opencv.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"

using namespace cv;
using namespace std;


void main()
{
	
	Scalar s1;

	cout << "s1=:" << s1<

运行结果:

OpenCV中基本数据结构(2)_Scalar_第3张图片

Scalar_类 operator重构

Scalar_类通过operator重构的操作有:

operator Method
+= template static inline
Scalar_<_Tp>& operator += (Scalar_<_Tp>& a, const Scalar_<_Tp>& b)
-= template static inline
Scalar_<_Tp>& operator -= (Scalar_<_Tp>& a, const Scalar_<_Tp>& b)
*= template static inline
Scalar_<_Tp>& operator *= ( Scalar_<_Tp>& a, _Tp v )
== template static inline
bool operator == ( const Scalar_<_Tp>& a, const Scalar_<_Tp>& b )
!= template static inline
bool operator != ( const Scalar_<_Tp>& a, const Scalar_<_Tp>& b )
+ template static inline
Scalar_<_Tp> operator + (const Scalar_<_Tp>& a, const Scalar_<_Tp>& b)
- template static inline
Scalar_<_Tp> operator - (const Scalar_<_Tp>& a, const Scalar_<_Tp>& b)
* template static inline
Scalar_<_Tp> operator * (const Scalar_<_Tp>& a, _Tp alpha)
template static inline
Scalar_<_Tp> operator * (_Tp alpha, const Scalar_<_Tp>& a)
template static inline
Scalar_<_Tp> operator * (const Scalar_<_Tp>& a, const Scalar_<_Tp>& b)
template static inline
Scalar operator * (const Matx<_Tp, 4, 4>& a, const Scalar& b)
template<> inline
Scalar operator * (const Matx& a, const Scalar& b)
- template static inline
Scalar_<_Tp> operator - (const Scalar_<_Tp>& a)
*= template static inline
Scalar_<_Tp>& operator *= (Scalar_<_Tp>& a, const Scalar_<_Tp>& b)
/ template static inline
Scalar_<_Tp> operator / (const Scalar_<_Tp>& a, _Tp alpha)
template static inline
Scalar_ operator / (const Scalar_& a, float alpha)
template static inline
Scalar_ operator / (const Scalar_& a, double alpha)
template static inline
Scalar_<_Tp> operator / (_Tp a, const Scalar_<_Tp>& b)
template static inline
Scalar_<_Tp> operator / (const Scalar_<_Tp>& a, const Scalar_<_Tp>& b)
/=
template static inline
Scalar_<_Tp>& operator /= (Scalar_<_Tp>& a, _Tp alpha)
template static inline
Scalar_<_Tp>& operator /= (Scalar_<_Tp>& a, const Scalar_<_Tp>& b)

 

你可能感兴趣的:(#,OpenCV笔记)