gpt4 book ai didi

opencv - 这个使用OpenCV中GaussianBlur函数的subtract_gaussian_blur函数有什么作用呢?

转载 作者:太空宇宙 更新时间:2023-11-03 21:23:35 32 4
gpt4 key购买 nike

我遇到了 this具有以下功能的 Kaggle 内核。

def subtract_gaussian_blur(img):
gb_img = cv2.GaussianBlur(img, (0, 0), 5)
return cv2.addWeighted(img, 4, gb_img, -4, 128)

转换此 RGB 图像。

enter image description here

变成下图。

enter image description here

我可以看到效果是它稍微锐化了图像并将其变成更灰度的图像(实际上不是灰度,因为图像仍然是 RGB)但我不确定我是否完全理解函数中发生的事情即使在阅读了关于 GaussianBlur 和 addWeighted 的 OpenCV 文档之后。

此外,这个特定的图像转换是否有一个我可以进一步阅读的特定名称?

最佳答案

我能看到的主要步骤是cv2.addWeighted(img, 4, gb_img, -4, 128)。 addWeighted 的基本方程是 dst(I)=saturate(src1(I)∗alpha+src2(I)∗beta+gamma)。在此处的示例中,alpha 为 4,beta -4,gamma 为 128。

我对其工作原理的理解是它首先执行高斯模糊以制作图像的去噪版本。然而,除了去除噪声,高斯模糊还可以“涂抹”边缘,这在后面很重要。然后从原始版本中减去去噪版本,并向每个像素颜色 channel 添加 128。

在原始像素与过滤后像素相同的区域,这将导致均匀的灰色区域。在原始像素和过滤像素差异很大的区域,您最终会得到更亮或更暗的区域,具体取决于原始像素或过滤像素的强度更高。差异在原始图像的边缘周围最为明显,因为这些边缘会被高斯模糊强烈地“弄脏”。

结果不是完全灰度,因为 addWeighted() 分别应用于像素的每个颜色 channel 。前后模糊图像的 RGB 值以不平衡的方式不同的区域(即两个红色 channel 之间的差异比蓝色或绿色 channel 之间的差异大得多)将有一定程度的颜色而不仅仅是灰色。

关于opencv - 这个使用OpenCV中GaussianBlur函数的subtract_gaussian_blur函数有什么作用呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57093068/

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