Ich mache Videoverarbeitung mit GPUImage2. Wenn die App startet, erstelle ich ein hexagonales Gitter und füge es meiner cameraView hinzu. Das Raster ist Vollbild und besteht aus etwa 100 Sechsecken. Im Allgemeinen, was ich versuche zu erreichen istGPUImage: Wie ermittelt man eine durchschnittliche Farbe innerhalb des Sechsecks?
Für jeden Rahmen Ich möchte eine durchschnittliche Farbe (in RGB oder sogar besser HSV) innerhalb jeder Zelle des Rasters finden. Wenn die Farbe bestimmt ist, möchte ich etwas in der Mitte jedes Sechsecks zeichnen, abhängig von der durchschnittlichen Farbe.
Ich habe ein Array mit Sechsecken, jeder von ihnen kennt die Koordinaten und die Mitte der Ecken. Ich habe auch ein Array mit UIBezierPaths, die Grenzen dieser Sechsecke enthält (nur für den Fall).
So sieht mein Code wie diese
class ViewController: UIViewController {
var hexagons = [HKHexagon]()
var hexagonsBounds = [UIBezierPath]()
let averageColorExtractor = AverageColorExtractor()
override func viewDidLoad() {
super.viewDidLoad()
do {
camera = try Camera(sessionPreset:AVCaptureSessionPreset1920x1080)
camera.delegate = self
cameraView.orientation = .landscapeLeft
camera --> cameraView
camera.startCapture()
drawGrid()
} catch {
fatalError("Could not initialize rendering pipeline: \(error)")
}
}
}
extension ViewController: CameraDelegate {
func didCaptureBuffer(_ sampleBuffer: CMSampleBuffer) {
for hexagon in hexagons {
}
}
}
I didCaptureBuffer erraten(), um den Ort averageColorExtractor zu jedem Sechseck sein sollte gelten, aber keine Ahnung, was als nächstes zu tun ..
I bin neu in der iOS-Entwicklung und es ist das erste Mal, dass ich GPUImage2 benutze ... Bitte, führe mich in die richtige Richtung.