44 lines
1.3 KiB
Kotlin
44 lines
1.3 KiB
Kotlin
import org.openrndr.application
|
|
import org.openrndr.color.ColorRGBa
|
|
import org.openrndr.draw.isolatedWithTarget
|
|
import org.openrndr.draw.loadImage
|
|
import org.openrndr.draw.renderTarget
|
|
import org.openrndr.extra.runway.*
|
|
|
|
/**
|
|
* This demonstrates the body estimation model of PoseNet
|
|
* This example requires a `runway/PoseNet` model active in Runway.
|
|
*/
|
|
fun main() = application {
|
|
configure {
|
|
width = 512
|
|
height = 512
|
|
}
|
|
|
|
program {
|
|
val rt = renderTarget(512, 512) {
|
|
colorBuffer()
|
|
}
|
|
val image = loadImage("demo-data/images/peopleCity01.jpg")
|
|
|
|
drawer.isolatedWithTarget(rt) {
|
|
drawer.ortho(rt)
|
|
drawer.clear(ColorRGBa.BLACK)
|
|
drawer.image(image, (rt.width - image.width) / 2.0, (rt.height - image.height) / 2.0)
|
|
}
|
|
|
|
extend {
|
|
val result: PoseNetResponse = runwayQuery("http://localhost:8000/query", PoseNetRequest(rt.colorBuffer(0).toData()))
|
|
val poses = result.poses
|
|
val scores = result.scores
|
|
|
|
drawer.image(image, 0.0, 0.0, 512.0, 512.0)
|
|
|
|
poses.forEach { poses ->
|
|
poses.forEach { pose ->
|
|
drawer.circle(pose[0]*512.0, pose[1]*512.0, 10.0)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |