gpt4 book ai didi

java - 在 JavaCV 中将标量转换为 Mat

转载 作者:太空宇宙 更新时间:2023-11-03 21:53:25 27 4
gpt4 key购买 nike

我正在尝试使用 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 等效的方法功能。

最佳答案

调用 inRange 时应该得到的错误有畸形的 MatOpenCV 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 , 你可以初始化 Matdouble[]Scalar目的。例如:new Mat(new double[]{255, 255, 255, 0}) .

关于java - 在 JavaCV 中将标量转换为 Mat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28989937/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com