Я хочу создать маску эллипса для обрезки изображения, чтобы отображалось только содержимое внутри эллипса.OpenCV - Эллипс вообще не отображается
Не могли бы вы проверить мой код?
public static Mat cropImage(Mat imageOrig, MatOfPoint contour){
Rect rect = Imgproc.boundingRect(contour);
MatOfPoint2f contour2f = new MatOfPoint2f(contour.toArray());
RotatedRect boundElps = Imgproc.fitEllipse(contour2f);
Mat out = imageOrig.submat(rect);
// the line function is working
Imgproc.line(out, new Point(0,0), new Point(out.width(), out.height()), new Scalar(0,0,255), 5);
// but not this one
Imgproc.ellipse(out, boundElps, new Scalar(255, 0, 0), 99);
return out;
}//cropImage
Похоже, что он вообще не работает. Хотя вы можете увидеть функцию линии, которую я сделал, чтобы проверить, работает ли она над правильным изображением, и я вижу строку, но нет эллипса.
Вот пример вывода моей функции cropImage.
ТИА
Дон Обрезать изображение. Вы получаете координаты эллипса в системе координат imageOrig. Если вы хотите показать эллипс на обрезке, вам нужно перевести центр эллипса, например: 'boundElps.center(). X - = rect.x; boundElps.center(). y - = rect.y; ' – Miki
Эй, @ Мики, вы должны сделать так ответ! Это решило мою проблему! Спасибо! –
Рад, что это помогло. Добавлено в ответ, а затем – Miki