computer-vision-project/src/main/kotlin/network/rs485/ben/computervision/DimensionProvider.kt

25 lines
684 B
Kotlin

package network.rs485.ben.computervision
import org.opencv.core.Mat
interface DimensionProvider {
val minX: Int
val maxX: Int
val minY: Int
val maxY: Int
}
class CroppingDimensionProvider(lines: List<Line>) : DimensionProvider {
override val minX: Int = lines.minOf { it.first.x }
override val maxX: Int = lines.maxOf { it.second.x }
override val minY: Int = lines.first().first.y
override val maxY: Int = lines.last().first.y
}
class ImageDimensionProvider(image: Mat) : DimensionProvider {
override val minX: Int = 0
override val maxX: Int = image.cols() - 1
override val minY: Int = 0
override val maxY: Int = image.rows() - 1
}