|
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 | 5/6 | Sana | 13.05.2024 | Hajmi | 2,18 Mb. | | #228588 |
Bog'liq Mashinali o\'qitishga kirish 5-Mustaqil ishDastur kodi
import matplotlib.pyplot as plt
from skimage.io import imread
from skimage.color import rgb2gray
# Load the images
art1 = rgb2gray(imread('art1.png'))
art2 = rgb2gray(imread('art2.png'))
art3 = rgb2gray(imread('art3.png'))
# Create a 1x3 subplot grid
fig, axs = plt.subplots(1, 3, figsize=(12, 4))
# Plot the first image in the first subplot
axs[0].imshow(art1, cmap='gray')
axs[0].set_title('Art 1')
axs[0].axis('off')
# Plot the second image in the second subplot
axs[1].imshow(art2, cmap='gray')
axs[1].set_title('Art 2')
axs[1].axis('off')
# Plot the third image in the third subplot
axs[2].imshow(art3, cmap='gray')
axs[2].set_title('Art 3')
axs[2].axis('off')
# Adjust the spacing between subplots
plt.tight_layout()
# Display the plot
plt.show()
Endi har bir san'atning maqsadi:
1-modda - to'g'ri chiziqlarni olib tashlang
2-modda - gorizontal chiziqlarni olib tashlang
Art 3 - bo'shliqlarni ulang
import numpy as np
import matplotlib.pyplot as plt
from skimage.morphology import erosion, dilation, opening, closing, disk
from skimage.color import rgb2gray
# Define the structuring elements
horizontal_selem = np.array([[0, 0, 0],
[1, 1, 1],
[0, 0, 0]])
vertical_selem = np.array([[0, 1, 0],
[0, 1, 0],
[0, 1, 0]])
diamond_selem = np.array([[0, 1, 0],
[1, 1, 1],
[0, 1, 0]])
x_pattern_selem = np.array([[1, 0, 1],
[0, 1, 0],
[1, 0, 1]])
# Create a circular structuring element
circ_selem = disk(6)
# Define helper functions for morphological operations
def apply_morphological_operation(img, operation, num, selem=None):
for i in range(num):
img = operation(img, selem)
return img
# Perform morphological operations on the artworks
artwork1 = apply_morphological_operation(artwork1, erosion, 2, horizontal_selem)
artwork1 = apply_morphological_operation(artwork1, erosion, 2, vertical_selem)
artwork1 = apply_morphological_operation(artwork1, dilation, 1, circ_selem)
artwork1 = apply_morphological_operation(artwork1, erosion, 1, diamond_selem)
artwork1 = apply_morphological_operation(artwork1, erosion, 2, x_pattern_selem)
artwork2 = apply_morphological_operation(artwork2, erosion, 2, horizontal_selem)
artwork3 = apply_morphological_operation(artwork3, closing, 2, vertical_selem)
artwork3 = apply_morphological_operation(artwork3, closing, 2, horizontal_selem)
# Create a 1x3 subplot grid
fig, axs = plt.subplots(1, 3, figsize=(12, 4))
# Plot the transformed artworks
artworks = [artwork1, artwork2, artwork3]
art_names = ['Artwork 1', 'Artwork 2', 'Artwork 3']
for i, ax in enumerate(axs):
ax.imshow(artworks[i], cmap='gray')
ax.set_title(art_names[i])
ax.axis('off')
# Adjust the spacing between subplots
plt.tight_layout()
# Display the plot
plt.show()
4. Rangli tasvirlarni fazoviy o’zgartirish va filtrlash
Tasvirlarni fazoviy filtrlash asosiy qo'llaniladigan usullardan biridir. Bu usul,
tasvirni o'z o'ziga xos belgilangan filterlar bilan moslashirish yordamida amalga
oshiriladi. Fazoviy filtrlash uchun, birinchi navbatda, tasvirning ikki o'lchovli
diskret Fourier (DFT) transformatsiyasi hisoblanadi. Tasvirdagi har bir pikselni sin
va kosinys funksiyalarining jamlanmasi bilan ifodalash, shuningdek, tasvirdagi
frekvensiya tartibining taqqoslashiga imkon beradi.
Fazoviy filtrlashda foydalaniladigan filtrlar quyidagi asosiy xususiyatlarga
ega bo'lishi kerak:
1. Simmetriya: Tasvirdagi simmetriya tasvirni moslashirishga imkon beradi.
Tasvirdagi yo'nalishlarning simmetriyasi o'zaro qarab moslashadi.
2. Foydalanish qulayligi: Filtrlash uchun ishlatiladigan filtrlar bilan ishlash qulay
bo'lishi kerak. Filtrlar kodini yozish, filtrlar bilan amallar ko'paytirish va filtrlash uchun
hajmi kam bo'lishi kerak.
3. Joyni saqlash: Filtrlash jarayonida tasvirda hozir bo'lgan joyni saqlash lozim. Bu
yerda, tasvirdagi har bir pikselni tekshirib chiqish kerak.
4. O'zgarishlarni ko'rsatish: Filtrlash uchun tasvirdagi o'zgarishlarni aniqlash lozim.
Tasvirdagi o'zgarishlar, tasvirdagi turli yo'nalishlarni aniqlash uchun kerak bo'ladi.
5. Kengligi va ochiq darajasi: Tasvirning kengligi va ochiq darajasi filtrlash jarayonida
muhimdir. Filtrlar kengligini tasvir kengligiga mos kelishini va filtrlash jarayonida
tasvir ochiq darajasini saqlash lozim.
Bu xususiyatlarga ega bo'lgan filtrlar tasvirdagi nuqtalar jamlanishi hisoblanadi va filtrlash uchun moslashuvchan kod yoziladi. Tasvirdagi qirrali qismi to'g'ri ko'rsatiladi va tasvirning nisbati aniqlanib, huddi tasvirning pasayish filtri orqali yaxshilash usuli kabi, moslashuvchan kod yoziladi.
|
|
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
|