OpenCV学习笔记(3)——Scalar数据类型理解
来源:互联网 发布:java api中文版下载 编辑:程序博客网 时间:2024/06/05 23:47
定义:
首先单词scalar的意思是标量,但是我们经常可以看到Scalar是包含多个值的,很像是一个向量,这是怎么回事呢?很是让人感觉困惑。先收起我们的困惑,首先来看看,Scalar的定义:
typedef struct Scalar{ double val[4];}Scalar;可以看到,Scalar是一个由长度为4的数组作为元素构成的结构体,Scalar最多可以存储四个值,没有提供的值默认是0。
使用:
Scalar常用的使用场景如下:
Mat M(7,7,CV_32FC2,Scalar(1,3));
上面的代码表示:创建一个2通道,且每个通道的值都为(1,3),深度为32,7行7列的图像矩阵。CV_32F表示每个元素的值的类型为32位浮点数,C2表示通道数为2,Scalar(1,3)表示对矩阵每个元素都赋值为(1,3),第一个通道中的值都是1,第二个通道中的值都是3.
实例1:
#include <iostream>#include <opencv2/highgui/highgui.hpp>#include <opencv2/core/core.hpp>#include <opencv2/imgproc/imgproc.hpp>#include <stdio.h>using namespace std;using namespace cv;void scalar_demo1(){Mat M(4,4,CV_32FC2,Scalar(1,3));cout<<M<<endl;}void scalar_demo2(){Mat M(4,4,CV_32FC3,Scalar(1,2,3));cout<<M<<endl;}void scalar_demo3(){Mat M(4,4,CV_32FC4,Scalar(1,2,3));cout<<M<<endl;}int main(void){//resize_img();//convert_color_space();scalar_demo1();cout<<"**********************************"<<endl;scalar_demo2();cout<<"**********************************"<<endl;scalar_demo3();return 0;}
实例2:
#include <iostream>#include <opencv2/highgui/highgui.hpp>#include <opencv2/core/core.hpp>#include <opencv2/imgproc/imgproc.hpp>#include <stdio.h>using namespace std;using namespace cv;void scalar_demo4(){Mat blue_m(256,256,CV_8UC3,Scalar(255,0,0));Mat green_m(256,256,CV_8UC3,Scalar(0,255,0));Mat red_m(256,256,CV_8UC3,Scalar(0,0,255));imshow("Blue",blue_m);waitKey(0);imshow("Green",green_m);waitKey(0);imshow("Red",red_m);waitKey(0);}int main(void){scalar_demo4();return 0;}运行结果如下:
相信读到这你已经明白Scalar是用来干什么的了,它将各个通道的值构成一个整体,赋给具有相同通道数的矩阵元素。至于它开头提到的它为什么叫做标量,就不必再纠结了。
阅读全文
0 0
- OpenCV学习笔记(3)——Scalar数据类型理解
- opencv学习(3)关于Mat类中的Scalar()
- opencv学习(3)关于Mat类中的Scalar()
- OpenCv学习笔记(三)---OpenCv中基本数据类型--Point,Size,Rect,Scalar,Vec3b类类型的详细解释及其OpenCv中源代码的详细分析
- OpenCV学习笔记之一(OpenCV的基本数据类型)
- OpenCV学习笔记(1)opencv基本数据类型
- opencv Scalar
- opencv scalar
- opencv scalar
- OpenCV学习笔记 -- 基本数据类型
- OpenCV 学习笔记---基本数据类型
- opencv深入学习(2)--Scalar类型
- OpenCV学习笔记(一)—OpenCV的基本数据类型和矩阵
- 【OpenCV学习笔记】2.1OpenCV基本数据类型
- Opencv学习笔记-----理解Mat
- C#学习笔记3——数据类型
- 学习opencv(一)——扒一扒opencv中的一些基本数据类型
- OpenCV学习笔记(二)—— OpenCV整体结构
- delegate的使用
- 滑动窗口
- javaweb的登录验证过滤器的实现
- this、static关键字(静态变量、方法、代码块)| 单例模式
- eclipse java/jee oxygen 下载
- OpenCV学习笔记(3)——Scalar数据类型理解
- Js_Dom(2)__Dom基础<方法(重点)>
- android性能测试封装工具----ctrace4android,附性能测试的3个例子
- QFile::write 写文件会变大的问题
- Final cut pro x& motion5 & compressor破解下载地址
- 如何使用RedisTemplate访问Redis数据结构
- python中文乱码的解决方法
- 练习 1- 8 编写一个统计空格,制表符与换行符个数的程序
- SQL 查询和优化(七)