Fix quad stabilization (fix #131)
This commit is contained in:
@@ -24,6 +24,7 @@ class QuadStabilizer {
|
|||||||
private var lastRawQuad: Quad? = null
|
private var lastRawQuad: Quad? = null
|
||||||
|
|
||||||
fun update(rawQuad: Quad?): Quad? {
|
fun update(rawQuad: Quad?): Quad? {
|
||||||
|
val previousQuad = lastRawQuad
|
||||||
lastRawQuad = rawQuad
|
lastRawQuad = rawQuad
|
||||||
|
|
||||||
if (rawQuad == null) {
|
if (rawQuad == null) {
|
||||||
@@ -31,13 +32,12 @@ class QuadStabilizer {
|
|||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
val lastRaw = lastRawQuad
|
if (previousQuad == null) {
|
||||||
if (lastRaw == null) {
|
|
||||||
stableCount = 1
|
stableCount = 1
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
val dist = lastRaw.maxCornerDistanceTo(rawQuad)
|
val dist = previousQuad.maxCornerDistanceTo(rawQuad)
|
||||||
// 20f is based on the assumption that the preview has a size of 640×480
|
// 20f is based on the assumption that the preview has a size of 640×480
|
||||||
if (dist < 20f) {
|
if (dist < 20f) {
|
||||||
stableCount++
|
stableCount++
|
||||||
|
|||||||
Reference in New Issue
Block a user