gpt4 book ai didi

python - 在 OpenCV 中实现 Photoshop 高通滤波器 (HPF)

转载 作者:行者123 更新时间:2023-12-02 15:11:23 24 4
gpt4 key购买 nike

我需要使用 OpenCV 从 Photoshop 实现高通滤波器。我已经阅读了 OpenCV 中的高通滤波器并尝试了一些内核,比如

[[ 0, -1, 0], 
[-1, 4, -1],
[ 0, -1, 0]].

然而,结果并不是我想要的,因为输出图像大多是黑白的,而 Photoshop 中的输出图像是灰色的。
以下是示例:
OpenCV high pass
Photoshop high pass .
另外,我试过:
blur = cv2.GaussianBlur(img,(ksize,ksize),0)
filtered = cv2.subtract(img,blur)

结果类似于 OpenCV high pass .

之后,我尝试将 127 添加到输出图像的每个像素。确实, the image look gray-ish now ,但它仍然与 Photoshop 图像不同。

那么我错过了什么?提前致谢。

编辑。致 Håken Lid:现在的代码很简单:
import cv2
import numpy
img = cv2.imread('input.jpg')
blur = cv2.GaussianBlur(img,(31,31),0)
filtered = cv2.subtract(img, blur)
filtered = cv2.add(filtered, 127*numpy.ones(neg_frame.shape, numpy.uint8))
cv2.imwrite('output.jpg', filtered)

这是 resultoriginal picture .

编辑2。是的,Håken Lid 关于截断是正确的。我再次编辑了代码:
import cv2
import numpy
img = cv2.imread('input.jpg')
blur = cv2.GaussianBlur(img,(31,31),0)
filtered = img - blur
filtered = filtered + 127*numpy.ones(neg_frame.shape, numpy.uint8)
cv2.imwrite('output.jpg', filtered)

输出结果是 this .现在它更像是我想要的,但差异仍然存在。

我的代码:
my output
照相馆:
photoshop output

最后编辑。在玩过 GaussianBlur 内核大小之后,我终于得到了我想要的 ksize = 51 .非常感谢大家的帮助!现在我感觉有点傻:P

最佳答案

如果您在黑色背景上使用单个白色像素拍摄图像并在 Photoshop 中应用滤镜,您将从 Photoshop 中获得卷积核。

关于python - 在 OpenCV 中实现 Photoshop 高通滤波器 (HPF),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50508452/

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