opencv学习(9):cv::Scalar、cv::Mat::zeros

这篇具有很好参考价值的文章主要介绍了opencv学习(9):cv::Scalar、cv::Mat::zeros。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 cv::Scalar

        cv::Scalar是opencv的一个结构体,其定义如下:(c++中的结构体如下,可以存放1~4个数值。)

    //! various constructors
    Scalar_();
    Scalar_(_Tp v0, _Tp v1, _Tp v2=0, _Tp v3=0);
    Scalar_(_Tp v0);

        表示图像颜色时,单通道图像用下标[0]即可,三通道图像用下标[0]、[1]、[2]分别表示B、G、R通道

        其中:

                白色:rgb(255,255,255)
                黑色:rgb(0,0,0)
                红色:rgb(255,0,0)--bgr(0,0,255)
                绿色:rgb(0,255,0)
                蓝色:rgb(0,0,255)--bgr(255,0,0)
                青色:rgb(0,255,255)--bgr(255,255,0)
                紫色:rgb(255,0,255)

                黄色:rgb(255,255,0)

                灰色:r=g=b

                        深灰:RGB(128, 128, 128)
                        淡灰:RGB(192, 192, 192)

这个博文的总结比较好:RGB颜色对照表_雪人见花的博客-CSDN博客_颜色rgb对照表

        示例代码:

    cv::Scalar color;
    if( sameflag[0]==0)
    {
      color[0]=0;color[1]=0;color[2]=255;//红色
    }
    if( sameflag[0]==-1)
    {
      color[0]=100;color[1]=100;color[2]=100;//灰色
    }
    if( sameflag[0]==100)
    {
      color[0]=0;color[1]=0;color[2]=0;//黑色
    }

2 cv::Mat::zeros

        cv::Mat::zeros在官网上有三种定义,因为理解起来相对容易,这里把定义放上:

2.1 zeros() [1/3]

        三个参数一次是行、列、类型

static CV_NODISCARD_STD MatExpr cv::Mat::zeros 	( 	int  	rows,
		int  	cols,
		int  	type 
	) 		

//参数 Parameters
    rows	Number of rows.
    cols	Number of columns.
    type	Created matrix type. 

        示例:

using namespace cv:
......
Mat A;
A = Mat::zeros(3, 3, CV_32F);

2.2 zeros() [2/3]

        两个参数,第一个是(列、行),第二个是类型

static CV_NODISCARD_STD MatExpr cv::Mat::zeros 	( 	Size  	size,
		int  	type 
	) 	

Parameters
    size	Alternative to the matrix size specification Size(cols, rows) .
    type	Created matrix type. 

2.3 zeros() [3/3]

static CV_NODISCARD_STD MatExpr cv::Mat::zeros 	( 	int  	ndims,
		const int *  	sz,
		int  	type 
	) 	

Parameters
    ndims	Array dimensionality.矩阵维度
    sz	Array of integers specifying the array shape.整数数组用于指定矩阵维度
    type	Created matrix type. 

参考链接:查看截图/图片中制定区域颜色:使用window自带的“画图”软件查看图片某点的RGB值_wzg2016的博客-CSDN博客_如何查看图片的rgb值

常用rgb值对照:常用颜色的RGB值 - ioufev - 博客园文章来源地址https://www.toymoban.com/news/detail-477974.html

到了这里,关于opencv学习(9):cv::Scalar、cv::Mat::zeros的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OpenCV中cv::Mat矩阵的四种遍历

    at方法遍历 单通道 运行结果 at方法遍历 多通道 (下面这种方式,既能遍历,又能修改) 运行结果: 对比程序:(下面这种方式,只能遍历,不能修改) 运行结果 第一种写法 运行结果 更一般的写法:把里面的3改成矩阵的通道数 a.channels() ,如下: 运行结果 上面这种写法

    2024年02月13日
    浏览(50)
  • OpenCV - cv::Mat与unsigned char*数组或者float*数组相互转换,cv::Mat与std::vector的相互转换

    通常情况下,在同一个opencv项目传递cv::Mat可直接通过const cv::Mat img这种方式传递,但是如果需要进行跨语言传递,比如C++传递到C#或者C#传递到C++,那么通常这种情况下需要将cv::Mat转换为内存指针比如unsigned char指针或者float指针进行传递。 1.1 cv::Mat转换为unsigned char 数组、un

    2024年02月13日
    浏览(54)
  • 【opencv之cv::Mat数据深拷贝和浅拷贝探讨】

    很多时候写程序除了一个强大的架构,细节也很重要,俗话说的话细节决定成败嘛,在使用cv::Mat做图片处理的时候发现,这个数据类型存在深拷贝和浅拷贝的情况,遂想一探究竟。 假设这里原图数据为matSrc : copy方法 结果 matA = matSrc 浅拷贝 matB(matSrc ) 浅拷贝 matC = matSrc .cl

    2024年02月13日
    浏览(35)
  • jni-Android Bitmap与OpenCV cv::Mat互转

    在封装so库的时候,底层c++代码的实现使用了OpenCV对图片进行操作,而Android中从摄像头中获取到的图片数据类型是Bitmap数据类型的,所以这里就避免不了做数据类型的转换。转换的方案主要有两种, 一种是封装的JNI接口方法直接接收cv::Mat数据类型的参数, 第二种是JNI方法的

    2024年02月01日
    浏览(43)
  • 在IOS上YUV NV21格式的CVPixelBufferRef转opencv的RGB格式cv::Mat的方法

    因为业务需要,要做这样一个转换。目前写了两种转换方法。 在iphonex真机上运行,一种方法需要24ms一帧,CPU占用率85%,另一种需要17ms一帧,CPU占用率140%。下面就来详细说说。 转换思路是CVPixelBufferRef-UIImage-cv::Mat的路线。 直接上方法: 先是CVPixelBufferRef-UIImage的方法 然后是

    2024年02月12日
    浏览(36)
  • cv库学习,一 Mat类矩阵的定义初始化

    1,由多维数组定义初始化Mat类矩阵;      double m[2][2]={{1.0,2.0},{3.0,4.0}};       Mat M(2,2,CV_64F,m); 2,构造函数定义法      Mat M(2,2,CV_32FC3,Scalar(100,200,300));       Mat M(2,2,CV_32FC2,Scalar(100,200));       Mat M(2,2,CV_8UC1,Scalar(100)); 3,   M.create(Size(10, 20), CV_32FC3); 在原有的M矩阵上修改大

    2023年04月24日
    浏览(39)
  • OpenCV 中的错误信息 “Layout of the output array img is incompatible with cv::Mat (step...

    OpenCV 中的错误信息 “Layout of the output array img is incompatible with cv::Mat (step[ndims-1] !)” 表示输出数组 img 的布局与 cv::Mat 类型不兼容。这种错误通常是在使用 OpenCV 进行图像处理时出现的,可能是由于输入和输出 Mat 类的尺寸不匹配、步长不符合要求等原因导致的。 为了更好地理

    2024年02月16日
    浏览(48)
  • Opencv::Mat的学习

    OpenCV中6种访问Mat元素的方法_opencv 访问mat元素_JIN_嫣熙的博客-CSDN博客

    2024年02月11日
    浏览(44)
  • Opencv的Mat内容学习

    来源: Opencv的Mat内容小记 - 知乎 (zhihu.com) 1.Mat 是一种图像容器,是二维向量。 灰度图的Mat一般存放uchar类型 RGB 彩色图像一般存放Vec3b类型。 (1) 单通道灰度图数据存放样式:   (2)RGB 三通道彩色图存放形式不同,每列并列存放通道数据的子列(顺序:BGR)   OpenCV学习笔记:Ma

    2024年02月15日
    浏览(72)
  • 一点就分享系列(理解篇5)Meta 出品 Segment Anything 4月6号版核心极速解读——主打一个”Zero shot“是贡献和辅助,CV依然在!

    Meta开源了Segment Anything项目和官网展现了非常令人印象深刻的分割Demo,其SAM模型给CV研究领域,个人简要理解有以下贡献: 1.Openset形式的分割任务的模型 2.超大的分割数据集 3.更好的应用思路,提示和组合可以派生很多有趣的应用 4.促进CV及多模态以及多任务一统趋势 源码地址

    2023年04月17日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包