opencv Scalar
发布时间:2020-12-16 09:04:27 所属栏目:安全 来源:网络整理
导读:templatetypename _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); templatetypename _Tp2,int cn Scalar_(const Vec_Tp2,cn v); //! returns a scalar wi
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; #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,CV_32FC3,scalar2); std::cout<<mat2<<std::endl; std::cout<<std::endl; cv::Scalar scalar3(0,0); cv::Mat mat3(4,CV_32FC4,scalar3); std::cout<<mat3<<std::endl; return 0; } cv::Mat mat(2,3,scalar)表示创建单通道,且每个通道的值都为125,深度为8,2行3列的图像矩阵。
CV_8UC1表示每个元素的值的类型为8位无符号整形,C1表示通道数为1,scalar(125)表示对矩阵每个元素都赋值为125. cv::Mat mat1(4,4,scalar1)表示创建两通道,且每个通道的值分别为(0,255),深度为32,4行4列的图像矩阵。
CV_32FC2表示每个元素的值的类型为32位浮点数,C2表示通道数为2,scalar1(0,255)第一个通道中的值都是0,第二个通道中的值都是255。 cv::Mat mat2(4,scalar2)表示创建三通道,且每个通道的值分别为(0,255),深度为32,4行4列的图像矩阵。
CV_32FC3表示每个元素的值的类型为32位浮点数,C3表示通道数为3,scalar2(0,255)第一个通道中的值都是0,第二个通道中的值都是255,第三个通道中的值都是255。 cv::Mat mat3(4,scalar3)表示创建四通道,且每个通道的值分别为(0,0),深度为32,4行4列的图像矩阵。
CV_32FC4表示每个元素的值的类型为32位浮点数,C4表示通道数为4,scalar2(0,0)第一个通道中的值都是0,第二个通道中的值都是255,第三个通道中的值都是255,第四个通道中的值都是0。 #include<opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include<iostream> int main(){ cv::Mat mat(200,250,cv::Scalar(0,0,0)); imshow("Scalar(0,0)",mat); cv::Mat mat1(200,255)); imshow("Scalar(0,255)",mat1); cv::Mat mat2(200,255,mat2); cv::Mat mat3(200,cv::Scalar(255,0)); imshow("Scalar(255,mat3); cv::Mat mat4(200,mat4); cv::Mat mat5(200,255)); imshow("Scalar(255,mat5); cv::Mat mat6(200,mat6); cv::Mat mat7(200,mat7); cv::Mat mat8(200,mat8); cv::Mat mat9(200,mat9); cv::Mat mat10(200,mat10); cv::Mat mat11(200,mat11); cv::Mat mat12(200,mat12); cv::Mat mat13(200,mat13); cv::Mat mat14(200,mat14); cv::Mat mat15(200,mat15); cv::waitKey(0); return 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |