我正在构建一个使用CIAreaHistogramCore Image过滤器的应用程序.我使用10的inputCount值(桶数)进行测试,inputScale值为1.
我得到CIImage直方图本身,然后我通过自定义内核运行(参见结尾)将alpha值设置为1(因为否则直方图计算中的alpha值被预乘)然后将其转换为NSBitmapImageRep.
然后我扫描图像代表的缓冲区并打印RGB值(跳过alpha值).但是,当我这样做时,10中R,G和B值的总和不一定总计为255.
例如,对于全黑图像,我应用直方图,然后应用自定义内核,并获得以下输出:
RGB: 255 255 255
RGB: 0 0 0
RGB: 0 0 0
RGB: 0 0 0
RGB: 0 0 0
RGB: 0 0 0
RGB: 0 0 0
RGB: 0 0 0
RGB: 0 0 0
RGB: 0 0 0
Run Code Online (Sandbox Code Playgroud)
这是我所期望的,因为所有像素都是黑色的,所以一切都在第一桶中.但是,如果我使用彩色图像运行相同的算法,我会得到以下结果:
RGB: 98 76 81
RGB: 164 97 87
RGB: 136 161 69
RGB: 100 156 135
RGB: 80 85 185
RGB: 43 34 45 …Run Code Online (Sandbox Code Playgroud)