Приложение JavaFX неправильно отображает текст кнопки

Еще один очень простой способ оценить резкость изображения - использовать фильтр Laplace (или LoG) и просто выбрать максимальное значение. Использование надежной меры, такой как 99,9% квантиль, вероятно, лучше, если вы ожидаете шума (т. Е. Выбираете N-высокий контраст, а не самый высокий контраст). Если вы ожидаете изменения яркости изображения, вы также должны включить шаг предварительной обработки для нормализации яркости / контраст (например, выравнивание гистограммы).

Я реализовал предложение Саймона и этот в Mathematica и попробовал его на нескольких тестовых изображениях:

test images [/g0]

Первый тест размывает тестовые изображения с использованием гауссовского фильтра с различным размером ядра, затем вычисляет БПФ размытого изображения и принимает среднее значение на 90% самых высоких частот:

testFft[img_] := Table[
  (
   blurred = GaussianFilter[img, r];
   fft = Fourier[ImageData[blurred]];
   {w, h} = Dimensions[fft];
   windowSize = Round[w/2.1];
   Mean[Flatten[(Abs[
       fft[[w/2 - windowSize ;; w/2 + windowSize, 
         h/2 - windowSize ;; h/2 + windowSize]]])]]
   ), {r, 0, 10, 0.5}]

Результат в логарифмическом графике:

fft result [/g1]

5 строк представляют собой 5 тестовых изображений, ось X представляет собой гауссовский радиус фильтра. Графики уменьшаются, поэтому БПФ является хорошей мерой для резкости.

Это код для оценки вероятности «высшей точки»: он просто применяет LoG-фильтр и возвращает самый яркий пиксель в результате фильтра:

testLaplacian[img_] := Table[
  (
   blurred = GaussianFilter[img, r];
   Max[Flatten[ImageData[LaplacianGaussianFilter[blurred, 1]]]];
   ), {r, 0, 10, 0.5}]

Результат в логарифмическом plot:

laplace result [/g2]

Распространение для не размытых изображений здесь немного лучше (2.5 против 3.3), главным образом потому, что этот метод использует только самые сильные контрастность изображения, тогда как БПФ является, по существу, средним по всему изображению. Функции также уменьшаются быстрее, поэтому может быть проще установить «размытый» порог.

0
задан Slaw 18 March 2019 в 16:04
поделиться

1 ответ

Рендеринг текста в кнопках JFXButtons разрешается с помощью одного из следующих селекторов CSS:

.button .text {
    -fx-font-size: 18;
}

.jfx-button .text {
    -fx-font-size: 18;
}

#buttonId .text {
    -fx-font-size: 18;
}

Устранено распознавание шрифта с использованием этой строки кода в методе start () для каждого внешнего шрифта: [115 ]

@Override
public void start(Stage stage) throws Exception {
    //load all application external fonts
    javafx.scene.text.Font.loadFont(
         getClass().getResource("/fonts/KottaOne-Regular.ttf").toExternalForm(), 15f);
    //...
}  

Чем шрифты готовы к использованию во всех файлах CSS, используя:

.label {
     -fx-font-family: "Kotta One";
     -fx-font-size: 20;
}
0
ответ дан Amarildo 18 March 2019 в 16:04
поделиться
Другие вопросы по тегам:

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