25 lines
684 B
Kotlin
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
|
|
}
|