Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

14-LEKCIYA_MDQI

.pdf
Скачиваний:
0
Добавлен:
18.10.2024
Размер:
310.94 Кб
Скачать

14-Lekciya. Kórinisti masshtablaw

Jobası:

1.Kórinisti masshtablawdıń tiykarǵı túsinikleri

2.Kórinisti masshtablaw usılları

3.Masshtablaw algoritmleriniń salıstırmalı analizi

4.Python tilinde kórinisti masshtablaw

5.Qollanılıw tarawları

Kórinisti masshtablaw - bul súwrettiń ólshemin ózgertiw processi. Bul process súwretti qayta islew tarawında jiyirek ushırasatuǵın máselelerdıń biri bolıp tabıladı. Masshtablaw arqalı biz súwrettiń ólshemin úlkeytiwimiz yamasa kishireytiwimiz múmkin.

Kórinisti masshtablawdıń tiykarǵı túsinikleri

Rezolyuciya

Rezolyuciya - bul súwrettegi piksellerdiń sanı. Ol ádette en x biyiklik formatında beriledi, mısalı 1920x1080.

Aspect ratio (Format qatnas)

Aspect ratio - bul súwrettiń eni menen biyikliginiń qatnası. Mısalı, 16:9 yamasa

4:3.

Interpolyaciya

Interpolyaciya - bul masshtablaw waqtında jańa piksellerdiń mánisin esaplaw processi.

3. Kórinisti masshtablaw usılları

3.1 Eń jaqın qońsı usılı (Nearest Neighbor)

Bul eń ápiwayı usıl. Ol jańa pikselge eń jaqın dáslepki pikseldiń mánisin belgileydi.

Artıqmashılıqları:

Tez isleydi

Ápiwayı ámelge asırıladı

Kemshilikleri:

Sapa tómenlew múmkin, ásirese úlkeytiwde

Súwret shıǵıs kóriniste quramalı bolıp qalıwı múmkin

Sızıqlı interpolyaciya (Bilinear Interpolation)

Bul usıl jańa pikseldiń mánisin esaplaw ushın dórt jaqın qońsı pikseldi qollanadı.

Artıqmashılıqları:

Eń jaqın qońsı usılına qaraǵanda joqarı sapa

Orta tezlikte isleydi

Kemshilikleri:

Úlken masshtablawlarda anıqlıqtı joǵaltıwı múmkin

Bikubikalıq interpolyaciya (Bicubic Interpolation)

Bul usıl jańa pikseldiń mánisin esaplaw ushın 16 jaqın qońsı pikseldi qollanadı.

Artıqmashılıqları:

Joqarı sapa, ásirese úlkeytiwde

Tegis nátiyje beredi

Kemshilikleri:

Sızıqlı interpolyaciyaǵa salıstırǵanda ástelewirek isleydi

Lanczos algoritmı

Bul kúshli usıl bolıp, ol sinc funkciyanı qollanadı.

Artıqmashılıqları:

Joqarı sapa, ásirese detallardı saqlaw kerek bolǵanda

Tegis nátiyje beredi

Kemshilikleri:

Esaplaw jaǵınan qımbat

Implementaciyası quramalıraq

Masshtablaw algoritmleriniń salıstırmalı analizi

Usıl

Tezlik

Sapa

Qollanılıw tarawı

Eń jaqın qońsı

Tez

Tómen

Tez nátiyje kerek bolǵanda

Sızıqlı

Orta

Orta

Ulıwma maqsetler ushın

Bikubikalıq

Ásten

Joqarı

Joqarı sapa kerek bolǵanda

Lanczos

Eń ásten

Eń joqarı

Professional qayta islew ushın

Python tilinde kórinisti masshtablaw

Python tilinde kórinisti masshtablaw ushın biz OpenCV yamasa Pillow kitapxanalarınan paydalanıwımız múmkin.

OpenCV menen masshtablaw

python

import cv2

image = cv2.imread('suwret.jpg')

resized = cv2.resize(image, (new_width, new_height), interpolation=cv2.INTER_LINEAR)

Bul jerde cv2.INTER_LINEAR ornına tómendegilerdi qollanıwǵa boladı:

cv2.INTER_NEAREST: Eń jaqın qońsı usılı

cv2.INTER_CUBIC: Bikubikalıq interpolyaciya

cv2.INTER_LANCZOS4: Lanczos algoritmı

Pillow menen masshtablaw

python

from PIL import Image

image = Image.open('suwret.jpg')

resized = image.resize((new_width, new_height), Image.BILINEAR)

Bul jerde Image.BILINEAR ornına tómendegilerdi qollanıwǵa boladı:

Image.NEAREST: Eń jaqın qońsı usılı

Image.BICUBIC: Bikubikalıq interpolyaciya

Image.LANCZOS: Lanczos algoritmı

Qollanılıw tarawları

Kórinisti masshtablaw kóplegen tarawlarda qollanıladı:

1.Veb-dizayn: Veb-saytlar ushın súwretlerdiń ólshemin ózgertiw

2.Cifrlı fotografiya: Súwretlerdi qayta islew hám redaktorlaw

3.Medicinada: Rentgen, MRT hám basqa da medicinada qollanılatuǵın súwretlerdi tallaw

4.Videoni qayta islew: Videolardı hár qıylı ólshemlerge masshtablaw

5.Mashina kóriwi: Súwretlerdi analizlew ushın standart ólshemge keltiriw

6.Sputniklik súwretler: Úlken ólshemdegi sputniklik súwretlerdi qayta islew

Kórinisti masshtablaw - bul súwretti qayta islew tarawındaǵı áhmiyetli process. Hár bir masshtablaw usılınıń ózine tán artıqmashılıqları hám kemshilikleri bar. Qollanılatuǵın usıldı tańlaw wazıypanıń talabına, kerekli sapa dárejesine hám bar bolǵan resurslarǵa baylanıslı boladı.

Tómendegi mısalda biz hár qıylı masshtablaw usılların qollanamız hám olardıń nátiyjelerin salıstıramız.

import cv2

import numpy as np

import matplotlib.pyplot as plt

def load_image(path): return cv2.imread(path)

def resize_image(image, width, height, method): if method == cv2.INTER_NEAREST:

return cv2.resize(image, (width, height), interpolation=cv2.INTER_NEAREST) elif method == cv2.INTER_LINEAR:

return cv2.resize(image, (width, height), interpolation=cv2.INTER_LINEAR) elif method == cv2.INTER_CUBIC:

return cv2.resize(image, (width, height), interpolation=cv2.INTER_CUBIC) elif method == cv2.INTER_LANCZOS4:

return cv2.resize(image, (width, height), interpolation=cv2.INTER_LANCZOS4)

def plot_results(images, titles):

fig, axs = plt.subplots(2, 2, figsize=(12, 10)) axs = axs.ravel()

for i in range(len(images)): axs[i].imshow(cv2.cvtColor(images[i], cv2.COLOR_BGR2RGB)) axs[i].set_title(titles[i])

axs[i].axis('off')

plt.tight_layout() plt.show()

# Tiykarǵı programma

image_path = 'suwret.jpg' # Súwrettiń jolın kórsetiń original_image = load_image(image_path)

# Jańa ólshemler

new_width, new_height = 800, 600

# Hár qıylı usıllardı qollanıw

nearest_neighbor = resize_image(original_image, new_width, new_height, cv2.INTER_NEAREST)

bilinear = resize_image(original_image, new_width, new_height, cv2.INTER_LINEAR) bicubic = resize_image(original_image, new_width, new_height, cv2.INTER_CUBIC)

lanczos = resize_image(original_image, new_width, new_height, cv2.INTER_LANCZOS4)

# Nátiyjelerin kórsetiw

images = [nearest_neighbor, bilinear, bicubic, lanczos]

titles = ['Nearest Neighbor', 'Bilinear', 'Bicubic', 'Lanczos'] plot_results(images, titles)

# Masshtablanǵan súwretlerdi saqlaw cv2.imwrite('nearest_neighbor.jpg', nearest_neighbor) cv2.imwrite('bilinear.jpg', bilinear) cv2.imwrite('bicubic.jpg', bicubic) cv2.imwrite('lanczos.jpg', lanczos)

print("Barlıq masshtablanǵan súwretler saqlandi.")

Bul kodta biz tórt túrli masshtablaw usılın ámelge asırdıq:

1.Eń jaqın qońsı usılı (Nearest Neighbor)

2.Sızıqlı interpolyaciya (Bilinear)

3.Bikubikalıq interpolyaciya (Bicubic)

4.Lanczos algoritmı

Kodtı qollanıw ushın tómendegi adımlardı orınlań:

1.Kerekli kitapxanalardı ornatıń: opencv-python, numpy, hám matplotlib.

2.Kodtaǵı image_path ózgeriwshisine ózińizdiń súwretińizdiń jolın kórsetiń.

3.Eger kerek bolsa, new_width hám new_height ózgeriwshilerin ózgertiń.

4.Kodtı iske túsiriń.

Kod tómendegi háreketlerdi orınlaydı:

1.Súwretti júklep aladı.

2.Hár bir usıldı qollanıp, súwretti belgilengen ólshemge masshtablaydı.

3.Nátiyjelerin bir grafika panelinde kórsetedi.

4.Masshtablanǵan súwretlerdi saqlap qoyadı.

Bul kod arqalı siz hár qıylı masshtablaw usıllarınıń nátiyjelerin kóriw hám salıstırıw múmkinshiligine iye bolasız. Hár bir usıldıń ózine tán ózgeshelikleri bar ekenin bayqawıńız múmkin. Mısalı:

Eń jaqın qońsı usılı eń tez, biraq sapası tómenirek bolıwı múmkin.

Sızıqlı interpolyaciya orta dárejeli sapa menen tezlikti beredi.

Bikubikalıq interpolyaciya joqarı sapa beredi, biraq ástenirek.

Lanczos usılı eń joqarı sapanı beredi, biraq eń ásten isleydi.

Bul mısal arqalı siz hár qıylı jaǵdaylarda qaysı usıldı qollanıw kerekligin túsiniwińizge járdem beredi.

Соседние файлы в предмете Программная инженерия