Edges पहचानें (1)
फिल्टर्स को "डिटेक्टर्स" के रूप में भी इस्तेमाल किया जा सकता है। यदि इमेज का कोई भाग वेटिंग पैटर्न से मेल खाता है, तो लौटाया गया मान बहुत अधिक (या बहुत कम) होगा.
एज डिटेक्शन के केस में, यह पैटर्न किसी समतल में इंटेंसिटी का बदलाव होता है। एक फिल्टर जो horizontal edges डिटेक्ट करता है, वह ऐसा दिख सकता है:
weights = [[+1, +1, +1],
[ 0, 0, 0],
[-1, -1, -1]]
इस अभ्यास में, एक वर्टिकल edge डिटेक्टर बनाइए और देखिए कि यह हाथ की x-ray (im) पर कितना अच्छा काम करता है.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में बायोमेडिकल इमेज विश्लेषण
अभ्यास निर्देश
- 3x3 का एक फ़िल्टर-वेट्स array बनाइए जो बाएँ से दाएँ इंटेंसिटी बदलने पर डिटेक्ट करे। केवल
1,0और-1मानों का उपयोग करें. imको edge डिटेक्टर के साथ convolve कीजिए.- horizontal edges को
seismiccolormap से प्लॉट करें। अपने colormap scale को नियंत्रित करने के लिएvmin=-150औरvmax=150का उपयोग करें. - एक colorbar जोड़ें और परिणाम render करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Set weights to detect vertical edges
weights = [[____], [____], [____]]
# Convolve "im" with filter weights
edges = ____
# Draw the image in color
plt.imshow(____, ____, vmin=-150, vmax=150)
____
format_and_render_plot()