Я пытаюсь обнаружить скин на изображениях с помощью opencv (новичок в нем), но мне удалось получить НЕКОТОРУЮ часть кожи, которая будет обнаружена, однако, похоже, что это создает некоторый шум на изображении. Вот оригинальное изображение:Устранение неполадок кожи
Результат моего кода:
код, который prouduces это:
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.
Именно поэтому это произошло, но также стоит отметить, что мне нужно было правильно настроить значения, соответствующие коже. – tofiffe