trufanov-nok / scantailor-universal

ScanTailor Universal - a fork based on Enhanced+Featured+Master versions of ST
http://scantailor.org
Other
181 stars 16 forks source link

0.2.13: resolved #132: threshold method #134

Closed zvezdochiot closed 1 year ago

zvezdochiot commented 1 year ago

Hi @trufanov-nok .

Resolved #132 .

See also:

trufanov-nok commented 1 year ago

Отлично! Спасибо! Чуть потестировал, один нюанс - не работает копирование новых параметров threshold в диалоге Apply To, который я очень люблю. Чтобы его починить, насколько я помню, нужно в filters/output/Params.cpp в Params::setColorParams часть case заменить на

    case CopyAllThresholds: {
        m_colorParams.setBlackWhiteOptions(params.blackWhiteOptions());
    }
    break;

    case CopyThreshold: {
        BlackWhiteOptions opt = params.blackWhiteOptions();
        opt.setThresholdForegroundAdjustment(m_colorParams.blackWhiteOptions().thresholdForegroundAdjustment());
        m_colorParams.setBlackWhiteOptions(opt);
    }
    break;

CopyThreshold и CopyForegroundThreshold работают только в Mixed mode, если в Settings/Output/Mixed mode/Foreground layer включен Separate Threshold control.

zvezdochiot commented 1 year ago

Hi @trufanov-nok .

Посленим force push привел все переменные к однообразному виду. Протестил. Пороги работают.

По поводу сохранения/копирования опций, вам стоит самому с этим разобраться, потому как дефолты:

// in BlackWhiteOptions::BlackWhiteOptions():
    m_thresholdMethod(OTSU),
    m_thresholdWindowSize(200),
    m_thresholdCoef(0.3)
...
// in BlackWhiteOptions::BlackWhiteOptions(QDomElement const& el)
   if (m_thresholdWindowSize <= 0)
    {
        m_thresholdWindowSize = 200;
    }
    if (m_thresholdCoef < 0.0)
    {
        m_thresholdCoef = 0.0;
    }
...

всё-равно надо в GlobalStaticSettings переность. А в "это" я лезть не стану.

Плюс к этому, я не уверен насчёт GUI. Я ж сделал "жёсткий хак" == "84->164":

<!-- in src/core/filters/output/ui/OutputOptionsWidget.ui -->
     <property name="minimumSize">
      <size>
       <width>0</width>
       <height>84</height>
       <height>164</height>
      </size>
     </property>
     <property name="maximumSize">
      <size>
       <width>16777215</width>
       <height>84</height>
       <height>164</height>
      </size>
     </property>
...

А как должно быть? Хз.

PS: И вы Owner в ORG.IPEP. Ежели реально нужны правки -> вносите.

PS2: С опциями ко мне не стоит лезть. Я когда для STEX делал регулирвку нормирования, "замучался" с ColorParams. В конце-концов "плюнул" и перенёс регулировку в BlackWhiteOptions. Знаю, что "некрасиво", зато работает.