首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Scalar类指定颜色

如何使用Scalar类指定颜色
EN

Stack Overflow用户
提问于 2015-03-27 21:31:59
回答 3查看 11.5K关注 0票数 5

我不知道如何在下面的posted方法中使用Scalar类指定颜色?

代码语言:javascript
复制
Features2d.drawKeypoints(mKeyPoints_0, mKeyPoints_0, outImage, Scalar color, Features2d.DRAW_RICH_KEYPOINTS);
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-03-28 16:54:50

使用Scalar指定颜色取决于Mat类型。尝试在灰度Mat上存储/绘制Red颜色将失败。

  • 类型CV_8UC1-灰度图像

//每像素8位,因此范围为0:255。标量颜色=新标量( 255 )//对于类型: 16UC1,范围为0:65535。对于32FC1范围为0.0f:1.0f

  • 类型CV_8UC3 -3通道彩色图像

//

  • :颜色排序为BGR标量color =新标量( 255,0,0)

  • 类型CV_8UC4 -带透明度的彩色图像

//透明绿色:带alpha范围的BGRA -0: 255标量颜色=新标量( 0,255,0,128 )

在问题中,drawKeyPoints的第一个参数应该是源图像(Mat),而不是关键点。因为MatOfKeyPoint是从Mat派生的,所以代码应该已经编译

票数 10
EN

Stack Overflow用户

发布于 2019-08-08 23:33:19

您可以使用以下方法将ARGB转换为标量

代码语言:javascript
复制
public static Scalar argbtoScalar(int r, int g, int b, int a) {
    Scalar s = new Scalar(b, g, r, a);
    return s;
}

a代表指定transparencyAlpha

票数 2
EN

Stack Overflow用户

发布于 2015-03-27 22:48:06

请务必查看Java API (http://docs.opencv.org/java/3.1.0/org/opencv/core/Scalar.html)

代码语言:javascript
复制
Scalar colour = new Scalar(B,G,R);

其中B、G、R是双色,每个颜色通道一个。

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

https://stackoverflow.com/questions/29301903

复制
相关文章

相似问题

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