• Rangli tasvirlarni fazoviy o’zgartirish va filtrlash
  • 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




    Download 2,18 Mb.
    bet5/6
    Sana13.05.2024
    Hajmi2,18 Mb.
    #228588
    1   2   3   4   5   6
    Bog'liq
    Mashinali o\'qitishga kirish 5-Mustaqil ish

    Dastur 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.

    Download 2,18 Mb.
    1   2   3   4   5   6




    Download 2,18 Mb.

    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

    Download 2,18 Mb.