gpt4 book ai didi

python - 应用 SciPy.ndimage 中的 Sobel 滤波器

转载 作者:行者123 更新时间:2023-12-01 08:57:55 25 4
gpt4 key购买 nike

我正在尝试应用 SciPy.ndimage 中的 Sobel 运算符并复制 Wikipedia 上显示的结果,但图像有很大不同。

Comparison of applying the Sobel operator

维基百科上提供的结果显示边缘更加明显。

下面列出了我正在使用的代码。可以修改此代码以与维基百科上呈现的结果一致吗?下面附有来自维基百科的原始图像和结果图像。

import numpy as np
from PIL import Image
import matplotlib.pyplot as plt
from scipy.ndimage import filters


# Images from https://en.wikipedia.org/wiki/Sobel_operator
im_original = np.array(Image.open('Valve_original_(1).PNG').convert('L'))
im_sobel = np.array(Image.open('Valve_sobel_(3).PNG').convert('L'))

# Construct two ndarrays of same size as the input image
imx = np.zeros(im_original.shape)
imy = np.zeros(im_original.shape)

# Run the Sobel operator
# See https://docs.scipy.org/doc/scipy/reference/generated/scipy.ndimage.sobel.html
filters.sobel(im_original,1,imx,cval=0.0) # axis 1 is x
filters.sobel(im_original,0,imy, cval=0.0) # axis 0 is y

magnitude = np.sqrt(imx**2+imy**2)

# Construct the plot

fig = plt.figure(figsize=(10,8))

ax1 = fig.add_subplot(221)
ax1.set_title('Original (Wikipedia)')
ax1.axis('off')
ax1.imshow(im_original, cmap='gray')

ax2 = fig.add_subplot(222)
ax2.set_title('Sobel operator - as shown on Wikipedia')
ax2.axis('off')
ax2.imshow(im_sobel, cmap='gray')

ax3 = fig.add_subplot(224)
ax3.set_title('Sobel operator - from scipy.ndimage')
ax3.axis('off')
ax3.imshow(magnitude, cmap='gray')

plt.savefig('sobel.png')
plt.show()

图片

原始图片:Valve_original_(1).PNG Original image Valve_original_(1).PNG

维基百科上显示的结果:Valve_sobel_(3).PNG

Result as presented on Wikipedia Valve_sobel_(3).PNG

最佳答案

为了解决这个问题,我根据上面的评论发布了一个答案。

Sobel 过滤后的 Steam 机图像,如 Wikipedia 所示已以某种未指定的附加方式进行处理,因此无法完全复制。很可能原始 RGB 图像首先转换为灰度,然后进行钳位。

查看从 SciPy.ndiamage 获得的 Sobel 滤波图像的强度直方图,请参见下图,大多数像素以强度 3.5 为中心。应用钳位值 50 生成的图像更接近维基百科页面上显示的图像。 Sobel filtered image clamped to 50 with histogram

关于python - 应用 SciPy.ndimage 中的 Sobel 滤波器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52678356/

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