我第一次使用布拉德·拉森的GPUImage框架。
我不知道是否可能,但我想使用GPUImageChromaKeyFilter和GPUImageSepiaFilter.我可以单独使用它们,但同时,它不起作用。紫色调起作用,但chromaKey似乎不起作用。
编辑2:工作这里是我的代码:
- (void)setupCameraAndFilters:(AVCaptureDevicePosition)cameraPostion {
videoCamera = [[GPUImageVideoCamera alloc] initWithSessionPreset:AVCaptureSessionPreset640x480 cameraPosition:cameraPostion];
videoCamera.outputImageOrientation = UIInterfaceOrientationLandscapeRight;
// ChromaKey
chromaKeyFilter = [[GPUImageChromaKeyBlendFilter alloc] init];
[(GPUImageChromaKeyBlendFilter *)chromaKeyFilter setColorToReplaceRed:0.0 green:1.0 blue:0.0];
[videoCamera addTarget:chromaKeyFilter];
// Input image (replace the green background)
UIImage *inputImage;
inputImage = [UIImage imageNamed:@"chromaBackground.jpg"];
sourcePicture = [[GPUImagePicture alloc] initWithImage:inputImage smoothlyScaleOutput:YES];
[sourcePicture processImage];
[sourcePicture addTarget:chromaKeyFilter];
// Sepia filter
sepiaFilter = [[GPUImageSepiaFilter alloc] init];
[chromaKeyFilter addTarget:sepiaFilter];
[sepiaFilter addTarget:self.filteredVideoView];
[videoCamera startCameraCapture];
}发布于 2014-08-12 17:41:23
您的问题是,上面的代码没有真正的意义。在第一个例子中,您让静态图像进入单输入GPUImageChromaKeyFilter,然后尝试将源图像和视频提要对准单输入GPUImageSepiaFilter。这两个输入中的一个将被另一个覆盖。
GPUImageFilterGroups仅仅是将过滤器序列组合在一起的方便类,是一个易于重用的包,在这里不会解决任何问题。
如果您试图将视频与彩色键控图像混合,则需要使用GPUImageChromaKeyBlendFilter,它接受两个输入,并根据键控将它们混合在一起。然后,您可以将该单个输出图像发送到紫色调过滤器,或者您希望对其进行排序。
发布于 2014-08-12 10:28:54
你必须使用GPUImageFilterGroup过滤器来完成你想要的事情。在GPUImage的示例中,您可以找到如何实现这一目标。祝好运!
https://stackoverflow.com/questions/25261673
复制相似问题