Речь поведу за CylindricalSurfaceDewarper.cpp и поведу на русском.
Есть два очень похожих варианта построения цилиндрической модели: стабильный (stable) и нестабильный (nonstable).
Почему так названы варианты?
Потому что у нестабильного периодически наблюдается сбой на нулевом столбце сетки и она дёргается или её скашивает и приходится доводить угловую точку, чтобы вернуть первые ячейки в нормальное состояние.
Какие ещё различия в вариантах?
Стабильный вариант работает не так, как задумано. У него средняя линия всегда ровная, независимо от кривизны верхней и нижней линии сетки.
PS: Исхожу из того, что m_plnStraightLineY всегда равен 0.5. При каких обстоятельствах он не равен 0.5? Мне неведомо. Сколько не дебажил, всегда выдаёт 0.5. На случай, когда такое всё-таки произойдёт, код можно переписать следующим образом:
Hi @trufanov-nok .
Речь поведу за
CylindricalSurfaceDewarper.cpp
и поведу на русском.Есть два очень похожих варианта построения цилиндрической модели: стабильный (stable) и нестабильный (nonstable).
Почему так названы варианты? Потому что у нестабильного периодически наблюдается сбой на нулевом столбце сетки и она дёргается или её скашивает и приходится доводить угловую точку, чтобы вернуть первые ячейки в нормальное состояние.
Какие ещё различия в вариантах? Стабильный вариант работает не так, как задумано. У него средняя линия всегда ровная, независимо от кривизны верхней и нижней линии сетки.
У вас испоьзуется стабильный вариант: https://github.com/trufanov-nok/scantailor-universal/blob/63f4c9d4774910817685bbf8ed7713b317dfdbb7/src/dewarping/CylindricalSurfaceDewarper.cpp#L119-L123 https://github.com/trufanov-nok/scantailor-universal/blob/63f4c9d4774910817685bbf8ed7713b317dfdbb7/src/dewarping/CylindricalSurfaceDewarper.cpp#L157-L161
Я же ни под какой "стабильностью" не подписывался. Мне нужно, чтобы деварп работал должным образом. Поэтому в STEX я использую нестабильный вариант:
PS: Исхожу из того, что
m_plnStraightLineY
всегда равен0.5
. При каких обстоятельствах он не равен0.5
? Мне неведомо. Сколько не дебажил, всегда выдаёт0.5
. На случай, когда такое всё-таки произойдёт, код можно переписать следующим образом:Такие вот дела.
PS: 600dpi: