【发布时间】:2018-03-27 15:20:42
【问题描述】:
我有以下 Python 代码:
ret,thresh = cv2.threshold(gray,5,255,cv2.THRESH_TOZERO)
kernel1 = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(11,11))
kernel2 = np.ones((3,3),np.uint8)
erosion = cv2.erode(thresh,kernel2,iterations = 1)
dilation = cv2.dilate(erosion,kernel1,iterations = 7)
我正在尝试将其转换为 Java。这是我当前的版本:
double thresh = Imgproc.threshold(gray, gray, 5, 255, Imgproc.THRESH_TOZERO);
Mat kernel1 = Imgproc.getStructuringElement(Imgproc.MORPH_ELLIPSE, new Size(11, 11));
Mat kernel2 = Mat.ones(3, 3, CvType.CV_8U);
Mat erosion = new Mat();
Imgproc.erode(gray, erosion, kernel2);
Mat dilation = new Mat();
Imgproc.dilate(erosion, dilation, kernel1);
现在我找不到应该应用 thresh 参数的地方,而且我也没有为 Imgproc.erode 和 Imgproc.dilate 方法使用 iterations 参数,因为这种情况下的方法签名也是需要额外的Point anchor 参数,我现在没有。
如何正确地将这段代码转换成Java?
更新
我做以下翻译:
Mat erosion = new Mat();
Imgproc.erode(gray, erosion, kernel2, new Point(), 1);
Mat dilation = new Mat();
Imgproc.dilate(erosion, dilation, kernel1, new Point(), 7);
看起来它正在按预期工作,但我不确定new Point() 是正确的翻译吗?
【问题讨论】: