OpenCV Java算术动作

  • 本文关键字:Java OpenCV java opencv math
  • 更新时间 :
  • 英文 :


我需要将代码从c++转换为Java。当我开始转换用算术动作改变Mat对象数据的代码时,问题就出现了。我如何在Java中执行这些操作:

MatOfFloat diff_im = <initialization>
MatOfFloat add_im =  <initialization>
int c = 200;
MatOfFloat o = diff_im/(add_im/2);
MatOfFloat uf = 128 + c*o;

在Java中不能这样做。与c++不同,您无法为对象重载操作符。您可以这样做以使用流畅的样式:

public class MathDouble {
    private double value;
    public static void main(String [] args) {
        MathDouble x = new MathDouble(5);
        MathDouble y = new MathDouble(6);
        System.out(x.add(y));        
    }
    public MathDouble(double v) { this.value = v; }
    public MathDouble add(MathDouble c) {
        return new MathDouble(this.value + c.value); 
    }
    public String toString() { return Double.toString(this.value); }
}

我想知道除了包装之外,您的MatObject类还提供什么标准float和double类型。似乎做了很多没有价值的工作。

库中有ComplexRational数字类,它们确实提供了特殊值,但它们都不能重载操作符。你必须使用流畅的风格和编写方法。

刚刚用谷歌检查了OpenCV。您是否在问如何扩展他们现有的Java API?

相关内容

  • 没有找到相关文章

最新更新