gpt4 book ai didi

java - 无法检测皮肤

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:59:25 27 4
gpt4 key购买 nike

我正在尝试使用 opencv(新功能)检测图像上的皮肤,但我已经设法检测到一些皮肤,但其余部分似乎会在图像上造成一些噪音。这是原始图像:

original

我的代码的结果是:

result

产生这个的代码:

Mat image = Imgcodecs.imread(name);

Imgproc.pyrMeanShiftFiltering(image, image, 10, 20);
Imgproc.blur(image, image, new Size(3, 3));

Mat hsv = new Mat();
Imgproc.cvtColor(image, hsv, Imgproc.COLOR_BGR2HSV);

Mat bw = new Mat();
Core.inRange(hsv, new Scalar(0, 10, 60), new Scalar(20, 150, 255), bw);

List<MatOfPoint> contours = new ArrayList<>();
Mat hierarchy = new Mat();
Imgproc.findContours(bw, contours, hierarchy, Imgproc.RETR_TREE, Imgproc.CHAIN_APPROX_NONE, new Point(0, 0));
int s = findBiggestContour(contours);

Mat drawing = new Mat(image.size(), CvType.CV_8UC1);
Imgproc.drawContours(drawing, contours, s, new Scalar(255), -1, 8, hierarchy, 0, new Point(0, 0));

Imgcodecs.imwrite(rename(name), drawing);

如何修复代码以检测图像上剩余的皮肤并去除噪点?

我将 Java 与 OpenCV 3.0.0 结合使用。

最佳答案

由于您使用的是 findBiggestConour(),我认为您只绘制了最大的匹配项,而不是所有匹配项。由于最大的轮廓恰好是仅显示的第二张图像上的轮廓。

关于java - 无法检测皮肤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30422794/

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