def ACE(src, C=3, n=3, MaxCG=7.5): rows, cols = src.shape meanLocal = cv2.blur(src, (n,n)) highFreq = src - meanLocal varLocal = highFreq * highFreq varLocal = cv2.blur(varLocal, (n,n)) varLocal = np.sqrt(varLocal).astype(np.float32) meanGlobal, varGlobal = cv2.meanStdDev(src) meanGlobal = meanGlobal[0][0] gainArr = 0.5 * meanGlobal / varLocal gainArr[gainArr > MaxCG] = MaxCG gainArr = gainArr.astype(np.uint8) gainArr = gainArr * highFreq dst2 = meanLocal + C*highFreq return dst2
时间: 2023-02-08 22:00:41 浏览: 119
这是 ACE 算法的 Python 代码。它的功能是对输入的图像 src 进行自适应增强(Adaptive Contrast Enhancement)。
ACE 算法的步骤如下:
1. 对图像 src 进行均值滤波,得到 meanLocal。
2. 计算 highFreq,它是图像 src 减去 meanLocal。
3. 计算 varLocal,它是 highFreq 的平方。
4. 对 varLocal 进行均值滤波,并将结果开方得到标准差。
5. 计算 meanGlobal 和 varGlobal,它们分别是图像 src 的平均值和标准差。
6. 计算 gainArr,它是图像 src 的平均值与 varLocal 的比值的一半。如果 gainArr 的值大于 MaxCG,则将它设为 MaxCG。
7. 使用 gainArr 乘以 highFreq 得到增强后的图像。
8. 返回 meanLocal 和 C * highFreq 的和作为增强后的图像。
阅读全文