|
Mavzu: Rangli tasvirlarni fazoviy oʻzgarishi va filtratsiyasi Mashinali o‘qitishga kirish ki 21-01– guruh talabasi Bajardi : Erbo‘tayev F. Tekshirdi : Kubayev S. T samarqand -2024
|
bet | 3/6 | Sana | 13.05.2024 | Hajmi | 2,18 Mb. | | #228588 |
Bog'liq Mashinali o\'qitishga kirish 5-Mustaqil ish3.2. Dastur kodi
import numpy as np
# Sobel Operators
# Horizontal Sobel Filter
kernel1 = np.array([[1, 2, 1],
[0, 0, 0],
[-1, -2, -1]])
# Vertical Sobel Filter
kernel2 = np.array([[1, 0, -1],
[2, 0, -2],
[1, 0, -1]])
# Left Diagonal Filter
kernel3 = np.array([[1, -1, -1],
[-1, 1, -1],
[-1, -1, 1]])
# Right Diagonal Filter
kernel4 = np.array([[-1, -1, 1],
[-1, 1, -1],
[1, -1, -1]])
# Edge Detection
kernel5 = np.array([[-1, -1, -1],
[-1, 8, -1],
[-1, -1, -1]])
# Sharpen
kernel6 = np.array([[0, -1, 0],
[-1, 5, -1],
[0, -1, 0]])
# Box Blur
kernel7 = (1 / 9.0) * np.array([[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.]])
# Gaussian Blur
kernel8 = (1 / 16.0) * np.array([[1., 2., 1.],
[2., 4., 2.],
[1., 2., 1.]])
Ushbu bo'limda biz yuqorida keltirilgan yadrolarning jozibali effektlarini ularning natijalarini ko'rsatish orqali namoyish qilamiz. Ushbu vizual tadqiqot orqali biz ushbu yadrolarning o'zgartiruvchi kuchiga guvoh bo'lishimiz va ularning tasvirga chuqur ta'sirini kuzatishimiz mumkin.
import matplotlib.pyplot as plt
from scipy.signal import convolve2d
# Create a list of kernel names for labeling
kernel_names = ['Original Image', 'Grayscale', 'Horizontal Sobel',
'Vertical Sobel', 'Left Diagonal', 'Right Diagonal',
'Edge Detection', 'Sharpen', 'Box Blur', 'Gaussian Blur']
# Create a 2x5 subplot grid
fig, axs = plt.subplots(2, 5, figsize=(16, 8))
# Plot the original image in the first subplot
axs[0, 0].imshow(flower_original)
axs[0, 0].set_title(kernel_names[0])
axs[0, 0].axis('off')
# Plot the grayscale image in the second subplot
axs[0, 1].imshow(flower_gray, cmap='gray')
axs[0, 1].set_title(kernel_names[1])
axs[0, 1].axis('off')
# Loop over the kernels and plot them in the remaining subplots
for i, kernel in enumerate([kernel1, kernel2, kernel3, kernel4,
kernel5, kernel6, kernel7, kernel8]):
# Apply the current kernel to the image
conv_im = convolve2d(flower_gray, kernel, 'valid')
# Compute the subplot indices
row = (i + 2) // 5
col = (i + 2) % 5
# Plot the convolved image with the current kernel
axs[row, col].imshow(abs(conv_im), cmap='gray')
axs[row, col].set_title(kernel_names[i+2])
axs[row, col].axis('off')
plt.tight_layout()
# Display the plot
plt.show()
Dunyoga qaraganimizda, ko'zlarimiz ob'ektlar va shakllarni belgilaydigan chekka va chegaralarga qaratiladi. Xuddi shunday, tasvirni qayta ishlashda gorizontal Sobel, vertikal Sobel va chekka aniqlash filtrlari bu vizual instinktni taqlid qiladi. Ushbu filtrlarni tasvir bilan birlashtirib, biz diqqatimizni tortadigan ajoyib konturlarga o'xshash intensivlik yoki rangdagi keskin o'zgarishlar bo'lgan hududlarni aniqlashimiz mumkin.
|
|
Bosh sahifa
Aloqalar
Bosh sahifa
Mavzu: Rangli tasvirlarni fazoviy oʻzgarishi va filtratsiyasi Mashinali o‘qitishga kirish ki 21-01– guruh talabasi Bajardi : Erbo‘tayev F. Tekshirdi : Kubayev S. T samarqand -2024
|