我需要紧固我的Matlab代码的这部分:
double(sum(histc(windows, 0:1:255),2)')它被应用于大图像的每个像素上,它用于计算局部直方图(在“窗口”内),因此它非常消耗资源。
你有什么建议来加速计算吗?
非常感谢。
发布于 2014-04-21 06:08:07
您可以利用相邻像素之间的重叠。假设我们有一个大小为3x3的窗口,并计算了像素I(x,y)的直方图,那么像素I(x+1,y)的直方图将包含6个相同的像素。所以你只需要减去3个值,再加上3。
您的代码看起来是错误的。histc返回bin计数,然后对计数求和,其总和应始终等于窗口的大小。是否要计算窗口内像素强度的总和?那么你应该直接使用sum函数。
https://stackoverflow.com/questions/23150220
复制相似问题