我正在使用GPUImage2进行视频处理。当应用程序启动时,我创建一个六角形网格并将其添加到我的cameraView。网格是全屏的,由大约100个六边形组成。 一般来说,我试图实现的是GPUImage:如何确定六边形内的平均颜色?
对于每一帧我想在网格的每个单元格中找到平均颜色(RGB或甚至更好的HSV)。 当确定颜色时,我想根据平均颜色在每个六边形的中心画一些东西。
我有一个六边形数组,每个人都知道它的顶点的坐标和中心。 我也有一个包含这些六边形边界的UIBezierPaths数组(以防万一)。
所以我的代码看起来像这样
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 {
}
}
}
我猜didCaptureBuffer()应该是averageColorExtractor适用于每个六边形的地方,但没有一个想法,下一步怎么办..
我我是iOS开发新手,这是我第一次使用GPUImage2 ...请引导我朝着正确的方向发展。