#java #android #opencv #opencv3.0
#java #Android #opencv #opencv3.0
Вопрос:
Я создаю приложение для Android с opencv, которое включает в себя вырезание изображений вручную, и у меня возникла проблема. Я восстанавливаю точки, которые пользователь делает рукой на экране, а затем накладываю маску на исходное изображение, чтобы получить ту часть, которую хочет пользователь. Меня беспокоит то, что, когда пользователь неправильно завершает рисование, в итоге может получиться большая линия, которая идет от последней точки к первой. Я хотел бы, как snapchat, иметь возможность выполнять вырезание, не полностью следуя пути пользователя, а обводя его путь.
На данный момент я использую следующие функции :
Imgproc.fillPoly(mask,pts,new Scalar(255,255,255,255));
Core.bitwise_and(img, mask, dst);
точки — это точки, которые пользователь отправляет после построения графика.
img — это базовое изображение
Комментарии:
1. Можете ли вы подробнее рассказать о том, как это должно вести себя для различных входных форм? например, что, если пользователь выделит форму
C
илиE
и получит начальную и конечную точки довольно близко друг к другу? В текущем примере, возможно, выпуклая оболочка была бы достойной отправной точкой…2. Да, это то, что я искал, спасибо!