GPUImage 프레임 워크의 chromakey 필터를 사용하려고합니다. 필자는 Filtershowcase 예제를 따라 갔지만 분명히 비디오를 보여주기 때문에 그린 스크린에 키잉 효과가 없어서 뭔가 놓쳤다. 뷰 카메라에 들어가는 것보다GPUImage 크로마 키 필터
camera = [[GPUImageStillCamera alloc] initWithSessionPreset:AVCaptureSessionPreset640x480
cameraPosition:AVCaptureDevicePositionBack];
camera.outputImageOrientation = UIInterfaceOrientationLandscapeLeft;
camera.horizontallyMirrorFrontFacingCamera = NO;
camera.horizontallyMirrorRearFacingCamera = NO;
chromaKeyFilter = [[GPUImageChromaKeyFilter alloc] init];
chromaKeyFilter.thresholdSensitivity = sliderThres.value;
UIImage *inputImage = [UIImage imageNamed:@"WID-small.jpg"];
GPUImagePicture *sourcePicture = [[GPUImagePicture alloc] initWithImage:inputImage
smoothlyScaleOutput:YES];
[camera addTarget:chromaKeyFilter];
[sourcePicture addTarget:chromaKeyFilter];
[sourcePicture processImage];
[chromaKeyFilter addTarget:viewCamera];
[camera startCameraCapture];
그래서 카메라와 sourcePicture 모두, 필터에 필터를 공급 : 여기에 비디오 카메라/필터의 내 초기화입니다. 하지만 지금은 일반 비디오 만 볼 수 있으며 크로 마키 효과는 없습니다. (임계 값을 변경하는 슬라이더가 있음). 이 필터
camera = [[GPUImageVideoCamera alloc] initWithSessionPreset:AVCaptureSessionPreset640x480 cameraPosition:AVCaptureDevicePositionBack];
camera.outputImageOrientation = UIInterfaceOrientationLandscapeLeft;
chromaKeyFilter = [[GPUImageChromaKeyBlendFilter alloc] init];
UIImage *inputImage;
inputImage = [UIImage imageNamed:@"WID-small.jpg"];
GPUImagePicture *sourcePicture = [[GPUImagePicture alloc] initWithImage:inputImage smoothlyScaleOutput:YES];
[camera addTarget:chromaKeyFilter];
[sourcePicture processImage];
[sourcePicture addTarget:chromaKeyFilter];
[chromaKeyFilter addTarget:viewCamera];
[camera startCameraCapture];
GPUImageChromaKeyBlendFilter
와UPDATED는, 단순히 블랙 아닌 실제 이미지로 대체.
그래,하지만 설정이 임계 값과 아무 관계가 없더라도 어쨌든 내가 기본값으로하지 않았더라도 0.4 – 0xSina