简体   繁体   中英

How to get real time image processing using CIFilter?

I am using CIFilter for image filtering in my iOS app.My following code works smoothly.But i have one problem,i think processing of image is time taken(I can't get real time effect).How to solve this issue?

cameraImgView.image = [ImageProcessing sepian:myOriginalImage withInensity:0.5]; //method call     

Method Definition

+(UIImage*)sepian:(UIImage*)img withInensity:(float)intensity{

CIImage *cimage = [[CIImage alloc] initWithImage:img];

CIFilter *sepiaFilter = [CIFilter filterWithName:@"CISepiaTone"];
[sepiaFilter setDefaults];
[sepiaFilter setValue:cimage forKey:@"inputImage"];
[sepiaFilter setValue:[NSNumber numberWithFloat:intensity]
               forKey:@"inputIntensity"];

CIImage *outputImage = [sepiaFilter outputImage];
CIContext *context = [CIContext contextWithOptions:nil];
CGImageRef cgImage = [context createCGImage:
                      outputImage fromRect:[outputImage extent]];
UIImage *resultUIImage = [UIImage imageWithCGImage:cgImage];
   CGImageRelease(cgImage);
return resultUIImage;

}

Try this:

filter = [CIFilter filterWithName:@"CISepiaTone"

                            keysAndValues: kCIInputImageKey, rawImageData,

                  @"inputIntensity", @3.5, nil];

Give this filter like below:

CIImage *filteredImageData = [filter valueForKey:@"outputImage"];

    UIImage *filteredImage = [UIImage imageWithCIImage:filteredImageData];

    self.img_view.image = filteredImage;

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM