pythonsicpy中的图像导数Sobel过滤器

2024-03-29 09:28:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我在读Jan Erik Solem的《用Python编程计算机视觉》(Programming Computer Vision with Python)一书,最终草案(CC许可证)已提供here。在

第34页显示了将Sobel滤波器应用于图像的结果,见图1.10,如下所示。当我运行这本书中的代码时,梯度大小的图像,即面板(d)看起来是相反的,见下文。在

我的问题是,这仅仅是因为作者颠倒了形象,还是有其他原因?在

下面列出了Python代码,该代码改编自本书,并添加了用于绘图的内容。在


Image derivatives

这些是用书中的代码生成的图像。在

Image derivatives 2

Python代码

from PIL import Image
from numpy import *
from pylab import *
from scipy.ndimage import filters

im = array(Image.open('empire.jpg').convert('L'))

# Sobel derivative filters
imx = zeros(im.shape)
filters.sobel(im,1,imx)

imy = zeros(im.shape)
filters.sobel(im,0,imy)

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

figure(figsize=(12,4))
gray()

subplot(1,4,1)
title('Oiginal')
axis('off')
imshow(im)

subplot(1,4,2)
title('imx')
axis('off')
imshow(imx)

subplot(1,4,3)
title('imy')
axis('off')
imshow(imy)

subplot(1,4,4)
title('magnitude')
axis('off')
imshow(magnitude)

savefig('sobel.png')
show()

示例代码中使用的图像

image used in the example code


Tags: 代码from图像importtitlefiltersimshowoff