【问题标题】:Get a pixel color from GPUImageVideoCamera从 GPUImageVideoCamera 获取像素颜色
【发布时间】:2016-01-19 15:19:39
【问题描述】:

我用 GPUImage 库和以下代码创建了一个简单的绿屏:

import UIKit
import GPUImage


class CaptureViewController: UIViewController {

  var videoCamera:GPUImageVideoCamera?
  var filter:GPUImageChromaKeyFilter?

@IBOutlet weak var cameraView: GPUImageView!

override func viewDidLoad() {
    super.viewDidLoad()
    cameraView.backgroundColor = UIColor.clearColor()
    videoCamera = GPUImageVideoCamera(sessionPreset: AVCaptureSessionPreset640x480, cameraPosition: .Back)
    videoCamera!.outputImageOrientation = .Portrait;
    filter = GPUImageChromaKeyFilter()
    filter?.setColorToReplaceRed(0.0, green: 1.0, blue: 0.0)
    filter?.thresholdSensitivity = 0.4
    videoCamera?.addTarget(filter)
    filter?.addTarget(cameraView)
    videoCamera?.startCameraCapture()
}

override func viewDidAppear(animated: Bool) {
    super.viewDidAppear(animated)
}
}

现在我想将颜色从绿色更改为用户点击视频的位置。

:如何从点击的位置获取像素数据?

【问题讨论】:

  • 您是否在应用程序运行心情中向我们展示了您想要在屏幕上点击多少绿色的部分?你有没有在摄像机里放了一个点击手势?
  • 我已经没有这个代码了,但是我没有找到解决办法
  • @HimanshuMoradiya 说,一个9像素的块。
  • @AndyFedoroff 现在我没有代码,但我给你一个想法,你可以解决这个问题,你可以获得正确的水龙头坐标
  • @AndyFedoroff 以编程方式创建一个视图并将其添加到您的相机视频视图中,并在该编程视图中添加一种点击手势的选择器方法以及访问您的点击手势坐标并创建一个视图的方法需要像 9*9 块。这样你的问题就会得到解决。

标签: ios swift gpuimage chromakey


【解决方案1】:

您的问题是如何获取视图中的触摸点(覆盖 touchesEnded 并查看 touch.locationInView),还是如何读回该点处或附近的像素值?

后者的答案是他的 GPUImage 项目有一个名为 RawDataTest 的示例,它向您展示了如何从 GPU 读取视图中任意像素的 RGBA 值。

https://github.com/BradLarson/GPUImage/tree/master/examples/iOS/RawDataTest/RawDataTest

【讨论】:

    猜你喜欢
    • 2014-08-05
    • 2013-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多