Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 计算'的好方法;亮度';关于UIImage?_Iphone_Ios_Uiimage_Uiimagepickercontroller - Fatal编程技术网

Iphone 计算'的好方法;亮度';关于UIImage?

Iphone 计算'的好方法;亮度';关于UIImage?,iphone,ios,uiimage,uiimagepickercontroller,Iphone,Ios,Uiimage,Uiimagepickercontroller,我正在编写一个应用程序,它将提供iPhone摄像头拍摄的图像的OCR。我想在执行OCR分析之前测试图像,看看是否有足够的照明。有人有什么想法吗?最灵活的方法是为红绿色和蓝色通道生成直方图,然后使用它来确定平均亮度、中间亮度、黑/白点、对比度或其他自定义函数 使用CGBitmapContextCreate创建一个由创建的缓冲区支持的位图上下文,将图像绘制到其中,然后循环缓冲区中的每个像素以填充直方图。可能有点困难,首先要迭代每个像素并计算亮度值,然后生成一些统计信息,如“最暗区域”、“最亮区域”、

我正在编写一个应用程序,它将提供iPhone摄像头拍摄的图像的OCR。我想在执行OCR分析之前测试图像,看看是否有足够的照明。有人有什么想法吗?

最灵活的方法是为红绿色和蓝色通道生成直方图,然后使用它来确定平均亮度、中间亮度、黑/白点、对比度或其他自定义函数


使用
CGBitmapContextCreate
创建一个由创建的缓冲区支持的位图上下文,将图像绘制到其中,然后循环缓冲区中的每个像素以填充直方图。

可能有点困难,首先要迭代每个像素并计算亮度值,然后生成一些统计信息,如“最暗区域”、“最亮区域”、“整体亮度”,等等。您可能还需要为图像设置一些对比度规则,而不是简单的光照测量。转换为灰度并计算亮度值的直方图将为您提供一个良好的开端。从这里,您可以使用标准偏差、偏度和其他度量来确定图像是否符合您的标准。@warrenm:通常,为每个通道计算单独的直方图,然后转换为灰度并计算一个直方图更便宜。显然,在iphone上进行图像分析是一个挑战。相机返回的未压缩图像约为8mb(它是UIImage对象),要使用它,您必须制作一个副本(因为UIImage是不可变的)-因此需要约16mb的内存:/