как делать набросок полигона в матричном или двухуровневом изображении для использования функций обработки изображений?

Настройка диапазона просто означает, что отключение даты вне этого диапазона. Таким образом, процесс такой же, как и в связанном ответе . Вы можете создать служебный метод для создания фильтров проще. Например, configureShowRangeHandler допускает Predicate, который отключит дату, если предикат вернет false. enableUntilToday - простой пример ограничения выбираемых дат до сегодняшнего дня.

{
    DatePicker dp = new DatePicker();
    Predicate enableUntilTodayDates = d -> !d.after(new Date());
    configureShowRangeHandler(dp, enableUntilTodayDates);
}

static HandlerRegistration configureShowRangeHandler(DatePicker dp, Predicate fn) {
    return dp.addShowRangeHandler(ev -> {
        for (Date t = copyDate(ev.getStart()); t.before(ev.getEnd()); addDaysToDate(t, 1)) {
            dp.setTransientEnabledOnDates(fn.test(t), t);
        }
    });
}
  • copyDate и addDaysToDate статически импортированы из CalendarUtil

7
задан Kamran Bigdely 24 April 2009 в 15:49
поделиться

1 ответ

Возможно, вы могли бы использовать poly2mask для вычисления интересующей области вместо того, чтобы наносить ее с помощью патча, как в вашем скрипте. Например,

Polygon = [ 15    45    33    30  40 23 ; 9    9    24    15 13 13]';
ImageWidth = 100;
ImageHeight = 50;
bw = poly2mask(Polygon(:,1),Polygon(:,2),ImageHeight,ImageWidth);
imshow(bw)

И результатом bw приведенного выше кода является это изображение.

bw

12
ответ дан 6 December 2019 в 21:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: