gpt4 book ai didi

ios - UIImage/CGImage 的标准偏差

转载 作者:塔克拉玛干 更新时间:2023-11-01 19:09:47 25 4
gpt4 key购买 nike

我需要计算 UIImage 对象中的图像的标准偏差。我已经知道如何一次访问一个图像的所有像素,所以我可以以某种方式做到这一点。我想知道框架中是否有某个功能可以更好、更有效地执行此操作……我找不到它,所以它可能不存在。有谁知道如何做到这一点?再见

最佳答案

进一步扩展我上面的评论。我肯定会考虑使用 Accelerate 框架,尤其是根据图像的大小。如果您的图像是几百像素 x 几百像素。您将有大量数据需要处理,AcceleratevDSP 一起将使所有这些数学运算更快,因为它在 GPU 上处理所有内容。我将对此进行更多研究,并可能在几分钟内添加一些代码。

更新

我将发布一些代码,使用 vDSP 在单个维度上做标准偏差,但这肯定可以扩展到二维

 float *imageR =  [0.1,0.2,0.3,0.4,...]; // vector of values
int numValues = 100; // number of values in imageR
float mean = 0; // place holder for mean
vDSP_meanv(imageR,1,&mean,numValues); // find the mean of the vector
mean = -1*mean // Invert mean so when we add it is actually subtraction
float *subMeanVec = (float*)calloc(numValues,sizeof(float)); // placeholder vector
vDSP_vsadd(imageR,1,&mean,subMeanVec,1,numValues) // subtract mean from vector
free(imageR); // free memory
float *squared = (float*)calloc(numValues,sizeof(float)); // placeholder for squared vector
vDSP_vsq(subMeanVec,1,squared,1,numValues); // Square vector element by element
free(subMeanVec); // free some memory
float sum = 0; // place holder for sum
vDSP_sve(squared,1,&sum,numValues); sum entire vector
free(squared); // free squared vector
float stdDev = sqrt(sum/numValues); // calculated std deviation

关于ios - UIImage/CGImage 的标准偏差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17654633/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com