【问题标题】:Incorrect Histogram from CIAreaHistogram / CIHistogramDisplayFilter来自 CIAreaHistogram / CIHistogramDisplayFilter 的直方图不正确
【发布时间】:2017-04-09 06:22:44
【问题描述】:

我有一个生成直方图的 CIImage* 的函数,假设将 CGImageRef 传递给例程。

我得到一个直方图图像,但直方图的左侧似乎被压缩,而右侧似乎被拉伸。我想知道是否需要应用 CTM,或者代码是否应该返回正确的图像。

函数如下:

- (CIImage*)histogramFromCGImage:(CGImageRef)image
{
    CIImage *inputImage = [[CIImage alloc] initWithCGImage:image];

    CIVector *inputExtent = [CIVector vectorWithCGRect:inputImage.extent];
    NSNumber *inputCount = [NSNumber numberWithInteger:256];
    NSNumber *inputScale = [NSNumber numberWithInteger:25];


    CIImage *histogramOutputImage = [inputImage imageByApplyingFilter:@"CIAreaHistogram"
                                                  withInputParameters:@{
                                                                        @"inputExtent" : inputExtent,
                                                                        @"inputCount" : inputCount,
                                                                        @"inputScale" : inputScale}
                                     ];

    CIImage *outHistogramImage = [histogramOutputImage imageByApplyingFilter:@"CIHistogramDisplayFilter"
                                   withInputParameters:nil];

    return outHistogramImage;
}

这是要过滤的图像:

Original Image

这是我生成的直方图图像:

Histogram from my function

在 Mac 预览应用或照片应用中查看图像应显示正确的直方图,其中大部分颜色位于直方图的中心。

非常感谢任何帮助。

【问题讨论】:

    标签: macos cocoa image-processing core-image cifilter


    【解决方案1】:

    禁用色彩管理解决了这个问题:

    NSDictionary *options = @{(id)kCIImageColorSpace : (id)kCFNull};
    CIImage *inputImage = [CIImage imageWithCGImage: image options:options];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-15
      • 2020-10-30
      • 1970-01-01
      • 2014-03-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多