OperationUnsupportedError使用列表clojure-java interop

问题描述 投票:0回答:1

我有以下open-cv互操作代码:

(defn find-significant-contours [edge-img size]
    (def contours '())
    (def hierarchy (Mat. size cv/CV_8UC1))
    (def edge-img-8u (Mat. size cv/CV_8UC1))
    (cv/find-contours edge-img-8u contours hierarchy cv/RETR_TREE cv/CHAIN_APPROX_SIMPLE)
)

其中findContours Java函数是:

public static void findContours​(Mat image, java.util.List<MatOfPoint> contours, Mat hierarchy, int mode, int method)

但是在执行时(发现有效位数(材料大小cv / CV_32FC1)img-size),我得到了错误:

(UnsupportedOperationException) at
   org.opencv.utils.Converters/Mat_to_vector_vector_Point (Converters.java:542).

我认为是因为findCountours要求提供列表,而我却给出了'()。我不知道如何明确给出一个列表。或该错误可能是由于某些其他原因。我在做什么错?

opencv clojure interop
1个回答
0
投票

[该异常是从Clojure序列实现中抛出的,它不支持将.add(...) -inging项本身,因为它是不可变的。

您必须通过List实现,该实现支持添加项目。例如。 (java.util.ArrayList.)


0
投票

[该异常是从Clojure序列实现中抛出的,它不支持将.add(...) -inging项本身,因为它是不可变的。

您必须通过List实现,该实现支持添加项目。例如。 (java.util.ArrayList.)

© www.soinside.com 2019 - 2024. All rights reserved.