-1
Я получил это работает нормально при использовании C++, код ниже:OpenCV - Заполнение изображения с помощью Java
Mat floodFilled = cv::Mat::zeros(dilateGrad.rows + 2, dilateGrad.cols + 2, CV_8U);
floodFill(dilateGrad, floodFilled, cv::Point(0, 0), 0, 0, cv::Scalar(), cv::Scalar(), 4 + (255 << 8) + cv::FLOODFILL_MASK_ONLY);
floodFilled = cv::Scalar::all(255) - floodFilled;
Mat temp;
floodFilled(Rect(1, 1, dilateGrad.cols - 2, dilateGrad.rows - 2)).copyTo(temp);
floodFilled = temp;
imshow("5. Floodfill", floodFilled);
Но я хочу, чтобы быть в состоянии сделать то же самое в Java, где я не могу сделать что-то как это:
floodFilled = cv::Scalar::all(255) - floodFilled;
В Java мой код это как:
private static Mat floodFill(Mat img)
{
Mat floodfilled = Mat.zeros(img.rows() + 2, img.cols()+2, CvType.CV_8U);
Imgproc.floodFill(img, floodfilled, new Point(0,0), new Scalar(0,255,0));
return floodfilled;
}
результатом является то, что изображение я вернусь точно так же один Я получаю функцию. Я имею в виду, я ожидаю заполненное изображение, но я получил исходное изображение как результат, то есть ничего не происходит.
Два предложения: показать больше кода Java, и показать конкретную ошибку вы получаете. –
Получил это. Ред. –
Cool - следующий вопрос У меня есть вопрос о вашем ожидаемом результате. Вы говорите: «результат заключается в том, что возвращаемое изображение точно совпадает с тем, которое я получаю в функции». Как это отличается от ваших ожиданий? Хороший формат для «разбитых» отчетов: «Я вижу A, но ожидаю B». Я не понимаю, из вашего вопроса, что вы ожидаете, в отличие от того, что вы получаете. –