2012-04-24 1 views
0

CIUnsharpMask 필터를 사용하여 이미지를 처리하려고합니다. 문제는 반환 된 이미지가 비어 있다는 것입니다. 이미지보기에는 아무 것도 나타나지 않습니다. 나는 나머지 필터들에 대해 같은 템플릿을 사용하고 있으며, 그들은 잘 작동했다. radiusValue와 intensityValue는 모두 NSNumbers btw입니다.CIUnsharpMask가 작동하지 않습니까?

CIImage *ciUnsharpMaskImage = [[CIImage alloc] initWithImage:preFilterImage]; 
CIContext *ciUnsharpMaskContext = [CIContext contextWithOptions:nil]; 
CIFilter *ciUnsharpMaskFilter = [CIFilter filterWithName:@"CIUnsharpMask" 
              keysAndValues: kCIInputImageKey, ciUnsharpMaskImage, 
           @"inputRadius", radiusValue, 
           @"inputIntensity", intensityValue, nil]; 
CIImage *ciUnsharpMaskOutputImage = [ciUnsharpMaskFilter outputImage]; 
CGImageRef ciUnsharpMaskCgimg = [ciUnsharpMaskContext 
           createCGImage:ciUnsharpMaskOutputImage 
           fromRect:[ciUnsharpMaskOutputImage extent]]; 
preFilterImage = [UIImage imageWithCGImage:ciUnsharpMaskCgimg]; 
CGImageRelease(ciUnsharpMaskCgimg); 
NSLog(@"unsharp mask filter applied"); 

[self.imageView setImage:preFilterImage]; 

답변

0

신경 끄시 고, 내가 사용할 수 filteres의 목록을 얻으려면 다음 코드를 사용 CIUnsharpMask 그 중 하나 :(

NSArray *supportedFilters = [CIFilter filterNamesInCategory:kCICategoryBuiltIn]; 
for (CIFilter *filter in supportedFilters) { 
    NSString *string = [NSString stringWithFormat:@"%@",[[CIFilter filterWithName:(NSString *)filter] inputKeys]]; 
    NSLog(@"%@ %@", filter, string); 
} 
+0

iOS에서 가속 된 언샵 마스크를 적용하려면 GPUImage 프레임 워크의 GPUImageUnsharpMask 필터를 살펴보십시오. https://github.com/BradLarson/GPUImage –

0
CIUnsharpMask는 아이폰 OS의 코어 이미지에 추가 된

6

아니다