Back

Explore Courses Blog Tutorials Interview Questions
0 votes
2 views
in Data Science by (17.6k points)

Here's my code:

from matplotlib.pyplot import imread

import matplotlib.pyplot as plt

from scipy.ndimage.filters import convolve

k3 = np.array([ [-1, -1, -1], [-1, 8, -1], [-1, -1, -1] ])

img = imread("lena.jpg")

channels = []

for channel in range(3):

    res = convolve(img[:,:,channel], k3)

    channels.append(res)

img = np.dstack((channels[0], channels[1], channels[2]))

plt.imshow(img)

plt.show()

k3 filter suppose to be an edge detection filter. Instead, I'm getting a weird image looks like white noise.

Why?

Here's the output:

enter image description here

1 Answer

0 votes
by (41.4k points)

Here, in this filter,you should convert the image to a signed type, like a 16-bit signed integer or a floating-point type.

img = img.astype(np.int16)

If you want to Learn Python visit this Online Python Course.

Related questions

Welcome to Intellipaat Community. Get your technical queries answered by top developers!

29.3k questions

30.6k answers

501 comments

104k users

Browse Categories

...