首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >javacv中cvScalar构造器的四个参数是什么意思?

问javacv中cvScalar构造器的四个参数是什么意思?
EN

Stack Overflow用户
提问于 2012-10-19 13:47:06
回答 2查看 9.8K关注 0票数 1

有人能解释一下javacv中cvScalar(double d,double d1,double d2,double d3)方法的四个参数的含义吗?

如何在cvScalar中表示黑色?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-19 13:58:24

cvScalar只是一个用于存储1、2、3或4个浮点值的方便容器。

这样的元组中的数据的含义留给cvScalar的用户。

例如,它们可用于保存平面中的点(2元组)、矩形(4元组)、RGB颜色(3元组)、3-D世界中的点(3元组)等。cvScalar被系统地实现为4元组,其中未使用的值设为0。

要回答有关RGB颜色黑色的问题:

代码语言:javascript
复制
cvScalar cBlack = new cvScalar(0, 0, 0, 0);
// BEWARE: the params for the cvScalar constructor are not in RGB order
//         it is:   new cvScalar(blue, green, red, unused)
//  note how the 4th scalar is unused.

或者,您可以使用CV_RGB()方便的方法,如下所示:

代码语言:javascript
复制
CvScalar cBlack = CV_RGB(0, 0, 0);
// here the CV_RGB() arguments are in Red, Green, Blue order.

Red :由于上面的示例是针对颜色黑色的,其中所有颜色分量都具有相同的值,因此无法清楚地表明存储在CvScalar中的分量的顺序与传统的红、绿、蓝顺序相反。

CV_RGB()便捷方法的参数是传统的RGB顺序,但是cvScalar中的存储是蓝、绿、红的顺序。

换句话说,CV_RGB的定义如下:

代码语言:javascript
复制
public static CvScalar CV_RGB(double r, double g, double b) {
    return cvScalar(b, g, r, 0);
}

或者换一种说法,cvScalar(0, 1, 130, 0)相当于CV_RGB(130, 1, 0),即红色,带有一丝绿色。

除了CV_RGB()之外,在将cvScalars用于颜色值时,使用cvScalar.Red()、cvScalar.Blue()和cvScalar.Green()方法提取各个组件可能更方便,而不必担心这些组件存储在哪里。该类还为每种常见颜色提供了几个静态实例:cvScalar.GRAY、cvScalar.YELLOW、cvScalar.BLUE等。

票数 8
EN

Stack Overflow用户

发布于 2012-10-19 13:58:14

cvScalar是一个由4个双精度数组成的通用数组。数据类型通常用于表示像素值,例如:

代码语言:javascript
复制
CvScalar blue = CV_RGB(64, 64, 255);

在接受少于4个值的构造函数中,剩余的双精度值被设置为0。

cvGet2D是另一个以CvScalar形式返回像素值的函数

读取单个像素的最简单方法是使用cvGet2D()函数

CvScalar cvGet2D(const CvArr*,int row,int col);

此函数接受三个参数:指向数据容器(CVArr*)的指针以及行和列位置的数组索引。数据容器可以是IplImage结构。最上面的一行像素是高度,最下面的是row=0 =row=0-1。

cvGet2D()函数返回一个C结构CvScalar,定义如下

类型定义结构CvScalar { double val4;} CvScalar;

每个通道的像素值都是vali。对于灰度图像,val包含像素>亮度。其他三个值设置为0。对于三通道BGR图像、blue=val、>green=val1和red=val2。

http://www.cognotics.com/opencv/servo_2007_series/part_1/page_4.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12968082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档