【发布时间】:2015-05-24 17:37:43
【问题描述】:
您好,我有一个红球的图像,如果我进行 Canny 边缘检测,它会找到很好的边缘,但如果我使用我的碗图像,它会发现很多坏边缘。我确实尝试使用此代码来计算最佳阈值,但 id 没有帮助。我怎样才能摆脱碗上的线条和球上的阴影?
MatOfDouble mu = new MatOfDouble();
MatOfDouble sigma = new MatOfDouble();
Core.meanStdDev(imageInMat, mu, sigma);
Mat canny = new Mat();
Imgproc.Canny(imageInMat, canny, mu.get(0,0)[0] - sigma.get(0,0)[0], mu.get(0,0)[0]+ sigma.get(0,0)[0]);
【问题讨论】:
-
碗上的渐变更陡峭,尤其是镜面高光。您必须找到一种方法来消除或忽略镜面反射效果。
-
我可以使用其他边缘检测器吗?
-
您可以尝试对图像进行预处理。 Specular reflection reduction is a thing。但是,这需要多张不同光照的照片。
标签: java opencv image-processing