Wie bekomme ich Ecken mit GPUImageHarrisCornerDetectionFilter
Ich versuche, die Eckpunkte von einem Standbild mit @ zu erhalteGPUImageHarrisCornerDetectionFilter
.
Ich habe mir den Beispielcode aus dem Projekt angesehen, ich habe mir die Dokumentation angesehen, und ich habe mir diesen Beitrag angesehen, der ungefähr dasselbe ist:GPUImage Harris Corner Detection auf einem vorhandenen UIImage gibt einen schwarzen Bildschirm aus
Aber ich kann es nicht zum Laufen bringen - und es fällt mir schwer zu verstehen, wie das mit Standbildern funktionieren soll.
Was ich an diesem Punkt habe, ist das:
func harrisCorners() -> [CGPoint] {
var points = [CGPoint]()
let stillImageSource: GPUImagePicture = GPUImagePicture(image: self.image)
let filter = GPUImageHarrisCornerDetectionFilter()
filter.cornersDetectedBlock = { (cornerArray:UnsafeMutablePointer<GLfloat>, cornersDetected:UInt, frameTime:CMTime) in
for index in 0..<Int(cornersDetected) {
points.append(CGPoint(x:CGFloat(cornerArray[index * 2]), y:CGFloat(cornerArray[(index * 2) + 1])))
}
}
filter.forceProcessingAtSize(self.image.size)
stillImageSource.addTarget(filter)
stillImageSource.processImage()
return points
}
Diese Funktion liefert immer[]
also es funktioniert offensichtlich nicht.
Ein interessantes Detail - Ich habe das FilterShowcaseSwift-Projekt aus GPUImage-Beispielen zusammengestellt, und der Filter findet keine sehr klaren Ecken, wie auf einem Blatt Papier auf schwarzem Hintergrund.