繁体   English   中英

在JavaCV中将标量转换为Mat

[英]Convert Scalar to Mat in JavaCV

我试图使用JavaCV将不同的颜色应用于输入范围内两个数字之间的区域。 请参阅以下代码,以获取其工作方式示例:

Mat mask = new Mat();
inRange(intensity, new Scalar(0.0), new Scalar(0.3), mask);
image.setTo(new Scalar(255.0, 0.0, 0.0, 1.0), mask);

我无法编译该代码,因为JavaCV似乎在inRange和setTo中都希望使用Mat而不是Scalar对象,请参见此处的定义:

@Namespace("cv") public static native void inRange(@ByVal Mat src,
       @ByVal Mat lowerb, @ByVal Mat upperb, @ByVal Mat dst);

在OpenCV文档中,应该使用Scalar而不是Mat 有没有一种方法可以将Scalar转换为Mat ,这样行得通?

我注意到,我可以用cvInRangeS代替inRange ,但我一直没能找到一个相当于setTo功能。

当您使用格式OpenCV Error: Sizes of input arguments do not match (The lower bounary is neither an array of the same size and same type as src, nor a scalar) Mat调用inRange时,您应该得到的错误是OpenCV Error: Sizes of input arguments do not match (The lower bounary is neither an array of the same size and same type as src, nor a scalar) ,或者类似这些行(请注意拼写错误)。

如果要将Mat用作Scalar ,则可以使用double[]Scalar对象初始化Mat 例如: new Mat(new double[]{255, 255, 255, 0})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM