如何删除图像中的闪光?

时间:2018-01-24 09:13:43

标签: ios objective-c

我正在使用核心图像将一些过滤器应用于CIImage。

图像中有闪光灯非常烦人。

我尝试过使用CIMedian Filter和CINoiseReduction过滤器。过滤器很少或没有用。

我甚至试图增加图像的对比度,但是,它会降低OCR图像的准确性。

更新:

目前我增加了图像的对比度,效果很好(只有1个字,亮度稍高,看起来白色不会被检测到):

// Add filter increase the exposure
CIImage *inputImage = [[CIImage alloc] initWithImage:_inputImage.image];
CIFilter *exposureAdjustmentFilter = [CIFilter filterWithName:@"CIExposureAdjust"];
[exposureAdjustmentFilter setDefaults];
[exposureAdjustmentFilter setValue:inputImage forKey:@"inputImage"];
[exposureAdjustmentFilter setValue:[NSNumber numberWithFloat:exposureNumber] forKey:@"inputEV"]; //set it to 5.0 will be able to remove the background blue color, and make the black color text standout 
CIImage *outputImageAfterExposure = [exposureAdjustmentFilter valueForKey:@"outputImage"];

@holex,我试过使用边缘过滤器,但由于我不太了解inputIntensity参数,因此无法获得理想的结果:

// Use edge detection filter
CIImage *inputImageEdgeDetection = outputImageAfterExposure;
CIFilter *ciEdges = [CIFilter filterWithName:@"CIEdges"];
[ciEdges setDefaults];
[ciEdges setValue:inputImageEdgeDetection forKey:kCIInputImageKey];
[ciEdges setValue:@(5) forKey:@"inputIntensity"]; // what is this for?
CIImage *outputImageAfterEdgeDetection = [ciEdges valueForKey:kCIOutputImageKey];

对于inputIntensity,文档非常模糊: 一个NSNumber对象,其属性类型为CIAttributeTypeScalar,其显示名称为Intensity。 默认值:1.00

在CIEdge过滤器后添加图像:

enter image description here

0 个答案:

没有答案