O’ZBEKISTON RESPUBLIKASI OLIY TA’LIM FAN VA
INOVATSIYALAR VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT
TEXNOLOGIYALARI UNIVERSITETI
SAMARQAND FILIALI
KOMPYUTER INJINIRINGI
FAKULTETI
“Signallar va tasvirlarga ishlov berish” fanidan
AMALIY ISH -3-4
Bajardi:KI 21-01 guruh talabasi Erbo‘tayev F.
Qabul qildi: Xusanov K.
SAMARQAND – 2025
3-AMALIY MASHGʻULOT
BIR O‘LCHOVLI SIGNALLAR USTIDA FILTRLASHNI AMALGA
OSHIRISH.
Maqsad: “Bir o‘lchovli signallar ustida filtrlashni amalga oshirish”
mavzusini oʻrganish va shu mavzu bo‘yicha masalalar yechishni oʻrganish.
Nazariy qism:
Filtrlash tushunchasi va maqsadi. Bir o‘lchovli signallar ustida filtrlash
deganda, signalning ma’lum chastotaviy xususiyatlarini susaytirish yoki
kuchaytirish orqali uni qayta ishlash amali tushuniladi. Shovqinli yoki keraksiz
komponentalarga ega bo‘lgan signalni filtrlash natijasida undan zarur bo‘lgan asosiy
informatsion qismni ajratib olish, signalni silliqlash yoki teskari holatda uning o‘tkir
o‘zgarishlarini aniqlash mumkin. Shuning uchun filtrlash – raqamli signalga ishlov
berishning eng asosiy usullaridan biri hisoblanadi.
Chiziqli invariant tizim (LTI) va filtrlash. Filtrlash amali aksariyat hollarda
chiziqli invariant tizim (LTI) doirasida tushuntiriladi. Bunday tizimlarda chiqish
signal y[n] kirish signal x[n]ning impuls javobi h[n] bilan konvolyutsiyasi sifatida
ifodalanadi:
Raqamli filtrlashda odatda h[n]h[n]h[n] chekli uzunlikka ega bo‘ladi yoki
rekurrent tenglamalar orqali ifodalanadi.
FIR va IIR filtrlar farqi. Bir o‘lchovli raqamli filtrlar ikki asosiy toifaga
bo‘linadi: FIR (Finite Impulse Response) va IIR (Infinite Impulse Response). FIR
filtrlar impuls javobi cheklangan uzunlikka ega bo‘lib, faza javobi chiziqli bo‘lishi
va barqarorlikka ega bo‘lishi bilan ajralib turadi. IIR filtrlar esa rekurrent (feedback)
tuzilishga ega bo‘lib, kichik tartib bilan kesish (cut-off) xususiyatini shakllantirishda
qulay, biroq faza javobi chiziqli emas va barqarorlik shartlarini doim nazorat qilish
talab etiladi.
Past o‘tkazuvchi, yuqori o‘tkazuvchi va polosa (band-pass) filtrlar
Filtrlashning asosiy turlari sifatida past o‘tkazuvchi (low-pass), yuqori o‘tkazuvchi
(high-pass), polosa o‘tkazuvchi (band-pass) va polosa to‘suvchi (band-stop) filtrlar
keltiriladi. Past o‘tkazuvchi filtrsignalning past chastotali komponentalarini saqlab,
yuqori chastotali qismini susaytiradi. Yuqori o‘tkazuvchi filtr bunga teskari ishlaydi.
Polosa o‘tkazuvchi filtr ma’lum chastota diapazonidan o‘tishga ruxsat beradi, polosa
to‘suvchi esa shu diapazondagi komponentalarni susaytiradi.
Filtrlashning chastota sohasidagi talqini. Vaqt sohasida konvolyutsiya
sifatida ko‘riladigan filtrlash chastota sohasida ko‘paytma amali sifatida
tushuntiriladi. Ya’ni, X(ω) - signal spektri, H(ω) - filtr transfer funksiyasi bo‘lsa,
chiqish spektri
ga teng bo‘ladi. Shu sababli, filtrlarni
loyihalashda aynan chastota spektriga asoslanib, kerakli chastota oralig‘ini saqlash
yoki o‘chirish mexanizmlarini ishlab chiqish qulay bo‘ladi.
Filtrlarni loyihalash usullari. Raqamli filtrlarni loyihalashda bir nechta
yondashuvlar mavjud: vaqt sohasida oynaviy yondashuv (window method) – bu
yerda ideal cheksiz impuls javobga real oynalar qo‘llanadi; chastota sohasida
cheklovlar asosida analitik yechimlar (masalan, Butterworth, Chebyshev, Elliptik
filtrlar) tanlanadi; o‘z-o‘zidan adaptiv filtrlash (adaptive filtering) – signal
xususiyatlariga dinamik moslashadi. Bularning barchasi kompyuterda interaktiv
tarzda matlab yoki boshqa muhitlarda qulay tarzda hal etiladi.
Filtrlashda faza javobining ahamiyati. Ba’zi hollarda signalning amplituda
spektri (ya’ni, uning kuchaytirish susaytirish xarakteristikasi) muhim bo‘lsa, boshqa
hollarda fazaviy xususiyati ham e’tiborli bo‘ladi. Masalan, tibbiy yoki audio
signallarda bosqich vaqti (delay) yoki faza siljishi jiddiy ahamiyatga ega bo‘lishi
mumkin. FIR filtrlarning faza javobi odatda “chiziqli” bo‘ladigan qilib
loyihalashtirish mumkin, bu esa signal shaklini buzmaslikka yordam beradi. IIR
filtrlarda esa fazaviy siljish murakkabroq bo‘lib, bu masalalarda filtfilt (ikki
tomonlama filtrlash) kabi usullar fazaviy siljishni kamaytirishga yordam beradi.
Shovqinni kamaytirish va silliqlash (smooth) filtrlari. Bir o‘lchovli signal
ustida eng ko‘p uchraydigan amaliyotlardan biri – shovqinni kamaytirish. Bunda
harakatchan o‘rtacha (moving average) filtr – eng sodda yechim bo‘lsa-da,
signaldagi tez o‘zgarishlarni xira qilib yuboradi. Savitzky–Golay kabi filtrlarda
harakatchan oynada polinom yotqizish hisobiga signalning xususiyatlari yaxshiroq
saqlanadi. Yana Butterworth, Chebyshev, Elliptik kabi an’anaviy filtrlar bilan ham
shovqin komponentalarini filtrlab, zarur chastota diapazonida signalni saqlash
mumkin.
Rekurrent tenglamalar va onlayn filtrlash. IIR filtrlar ko‘pincha rekurrent
tenglamalar shaklida ifodalanadi:
Shu tariqa, vaqt jadvallik (sample-by-sample) hisoblash mexanizmi yaratiladi.
Onlayn (real-time) filtrlashda, signalni oqim (stream) shaklida kelishida har bir
nuqta shu tenglamaga solinadi, natijada chiqish signali bosqichma-bosqich ishlab
chiqiladi. Ushbu jarayon raqamli signal protsessorlari (DSP) yoki mikrokontrollerlar
asosida keng amaliy qo‘llanilishiga ega.
Xulosa va keyingi rivojlanish yo‘nalishlari. Bir o‘lchovli signallarni
filtrlash – raqamli signalga ishlov berishning poydevorlaridan biri bo‘lib, zamonaviy
texnologiyalar, tibbiy uskunalar, aloqa tizimlari, seysmik tahlil, audio va video
texnologiyalarda keng qo‘llanadi. Bu jarayonni chuqur o‘zlashtirish uchun FIR va
IIR filtrlarning faza va amplituda xususiyatlarini, barqarorlik shartlarini, dizayn
metodlarini puxta bilish talab etiladi. Keyinchalik chuqur o‘rganish (deep learning)
yoki mashinada o‘rganish (machine learning) algoritimlari bilan birgalikda filtrlash
usullari yanada takomillashib, turli murakkab signallardan noyob xususiyatlarni
ajratib olish imkonini bermoqda. Shu bois, bir o‘lchovli filtrlash nafaqat klassik
uslubda, balki ilg‘or algoritmlar bilan uyg‘unlashgan holda ham rivojlanishda
davom etadi.
Amaliy qism:
Quyida «SIGNALLAR VA TASVIRLARGA ISHLOV BERISH» fanidagi «Bir
o‘lchovli signallar ustida filtrlashni amalga oshirish» mavzusiga oid 5 ta qiymatini
o‘zgartirish mumkin bo‘lgan masala va ularning yechimlari keltirilgan. Ushbu masalalarda bir
nechta parametrlarni (filtr tartibi, kesish chastotasi, oyna uzunligi, shovqin darajasi va h.k.)
o‘zgartirib turli natijalarni kuzatish mumkin.
1-MASALA
Vazifa: Sinusoidal signalga (f1 Gts) shovqin (amplitudasi noiseLevel) qo‘shilsin va
oddiy harakatchan o‘rtacha (moving average) filtr (uzunligi N) bilan filtrlansin. Shovqin darajasi,
sinus chastotasi va filtr uzunligi turlicha qiymatga o‘rnatilib, natijani taqqoslash mumkin.
O‘zgartirish mumkin bo‘lgan parametrlar
f1 – asosiy sinus chastotasi (masalan, 50 Hz yoki 100 Hz).
noiseLevel – shovqin amplitudasi (masalan, 0.1, 0.3 va h.k.).
N – harakatchan o‘rtacha filtr uzunligi.
Matlab KODI:
%% 1-MASALA
Fs = 1000;
t = 0:1/Fs:0.02;
% Diskretlash chastotasi
% Vaqt oralig'i (0 dan 0.02 s gacha)
f1 = 4;
noiseLevel = 0.3;
N = 4;
% Asosiy sinus chastotasi
% Shovqin amplitudasi
% Harakatchan o'rtacha filtr uzunligi
% Asosiy signal + shovqin
x_clean = sin(2*pi*f1*t);
x_noisy = x_clean + noiseLevel*randn(size(t));
% Harakatchan o'rtacha filtr
b = (1/N)*ones(1,N);
a = 1;
% Filtrlash
x_filt = filter(b, a, x_noisy);
% Natijalarni chizish
figure;
subplot(3,1,1);
plot(t, x_clean);
title('Asl toza sinusoidal signal');
xlabel('Vaqt (s)'); ylabel('Amplituda');
subplot(3,1,2);
plot(t, x_noisy);
title('Shovqinli signal');
xlabel('Vaqt (s)'); ylabel('Amplituda');
subplot(3,1,3);
plot(t, x_filt, 'r');
title(['Harakatchan o‘rtacha filtr (N = ' num2str(N) ')']);
xlabel('Vaqt (s)'); ylabel('Amplituda');
Natija:
N ni oshirganda, signalning silliqlanishi ortadi, lekin tez o‘zgarishlar yassilanadi. noiseLevel
kattaroq bo‘lsa, shovqin ko‘proq seziladi.
2-MASALA
Vazifa: Aralash signal (f1 va f2 Gts) past o‘tkazuvchi Butterworth IIR filtr bilan filtrlab,
yuqori chastotali komponentani susaytiring. Kesish (cut-off) chastotasi va filtr tartibini o‘zgartirib
natijani kuzatish mumkin.
O‘zgartirish mumkin bo‘lgan parametrlar
f1 va f2 – signalning ikki asosiy chastotasi.
fc – Butterworth filtri kesish chastotasi (masalan, 100 Hz, 150 Hz).
filterOrder – filtrning tartibi (masalan, 2, 4, 6 va h.k.).
Matlab KODI:
%% 2-MASALA
Fs = 1000;
t = 0:1/Fs:0.05;
% Diskretlash chastotasi
% 0.05 s davomida
f1 = 4;
% Past chastotali komponenta
f2 = 200;
% Yuqori chastotali komponenta
x = sin(2*pi*f1*t) + 0.5*sin(2*pi*f2*t);
filterOrder = 4;
fc = 100;
Wn = fc/(Fs/2);
% Butterworth filtri tartibi
% Kesish chastotasi (Hz)
% Normalizatsiyalangan chastota
% Filtr koeffitsientlari
[b,a] = butter(filterOrder, Wn, 'low');
% Filtrlash
y_filt = filtfilt(b, a, x);
% Chastota javobini ko'rish uchun
figure;
freqz(b, a, 1024, Fs);
title(['Butterworth Filtri (Order = ' num2str(filterOrder) ', fc = ' num2str(fc)
' Hz)']);
% Vaqt sohasida ko'rish
figure;
subplot(2,1,1);
plot(t, x);
title(['Asl aralash signal (f1=' num2str(f1) ', f2=' num2str(f2) ')']);
xlabel('Vaqt (s)'); ylabel('Amplituda');
subplot(2,1,2);
plot(t, y_filt, 'r');
title('Filtrlashdan keyingi signal');
xlabel('Vaqt (s)'); ylabel('Amplituda');
Natija:
fc ni katta qilganda f2 (200 Hz) komponenta ham qisman saqlanadi. filterOrder ni oshirsangiz,
kesish qirrasi (roll-off) keskinroq bo‘ladi, biroq fazaviy siljish ham ortishi mumkin.
3-MASALA
Vazifa: 20–50 Hz chastota oralig‘ini o‘tkazuvchi (band-pass) FIR filtr loyihalab, aralash
signalni filtrlash. firOrder va chastota diapazonini o‘zgartirib turli natijalarni tekshiring.
O‘zgartirish mumkin bo‘lgan parametrlar
lowCut va highCut – filtrlash oralig‘i (masalan, [20, 50] Hz).
firOrder – FIR filtr tartibi (masalan, 50, 100).
Fs – diskretlash chastotasi.
Matlab KODI:
%% 3-MASALA
Fs = 200;
% Diskretlash chastotasi
t = 0:1/Fs:1;
% 1 soniya
% Aralash signal (10 Hz, 30 Hz, 70 Hz misol uchun)
x = sin(2*pi*10*t) + sin(2*pi*30*t) + 0.5*sin(2*pi*70*t);
lowCut = 20;
highCut = 50;
firOrder = 60;
% Pastki kesish chastotasi
% Yuqori kesish chastotasi
% FIR filtr tartibi
% Normalizatsiyalangan chastotalar
Wn = [lowCut/(Fs/2), highCut/(Fs/2)];
% FIR (Hamming oynali) band-pass filtr
b_fir = fir1(firOrder, Wn, 'bandpass', hamming(firOrder+1));
a_fir = 1;
% Filtrlash
y_bandpass = filter(b_fir, a_fir, x);
% Grafik tahlil
figure;
subplot(2,1,1);
plot(t, x);
title('Asl aralash signal (10, 30, 70 Hz)');
xlabel('Vaqt (s)'); ylabel('Amplituda');
subplot(2,1,2);
plot(t, y_bandpass, 'r');
title('Band-pass FIR filtrlashdan keyingi signal (20-50 Hz)');
xlabel('Vaqt (s)'); ylabel('Amplituda');
Natija:
Filtrlashdan so‘ng asosan 30 Hz chastotali komponenta saqlanadi, 10 Hz va 70 Hz sezilarli
susayadi. firOrder ni kattalashtirsangiz, filtr kesish chiziqlari aniqroq (keskinroq) bo‘ladi, lekin
hisoblash ham ko‘proq vaqt olishi mumkin.
4-MASALA
Vazifa: Shovqinli signalni Savitzky–Golay filtri bilan silliqlash, bunda oyna uzunligi va polinom
tartibini o‘zgartirib ko‘rish mumkin. Bu shovqinni kamaytirish bilan birga signal shaklini
nisbatan yaxshi saqlab qolish imkonini beradi.
O‘zgartirish mumkin bo‘lgan parametrlar
windowSize – Savitzky–Golay oynasining uzunligi (masalan, 7, 9, 15 va h.k.).
polyOrder – Polinom tartibi (1, 2, 3 ...).
noiseLevel – Shovqin amplitudasi.
Matlab KODI:
%% 4-MASALA
Fs = 100;
t = 0:1/Fs:1;
noiseLevel = 0.3;
x_base = sin(2*pi*5*t) + 0.2*t; % Sinus + sekin o'suvchi trend
x_noisy = x_base + noiseLevel*randn(size(t));
% Savitzky–Golay parametrlarini belgilash
windowSize = 15; % Har doim polyOrderdan kattaroq va toq bo'lishi ma'qul
polyOrder = 2;
% Filtrlash
x_sg = sgolayfilt(x_noisy, polyOrder, windowSize);
% Grafik taqqoslash
figure;
subplot(3,1,1);
plot(t, x_base);
title('Asl signal (sinus + trend)');
subplot(3,1,2);
plot(t, x_noisy, 'r');
title(['Shovqinli signal (noise = ' num2str(noiseLevel) ')']);
subplot(3,1,3);
plot(t, x_sg, 'g');
title(['Savitzky–Golay filtr (windowSize=' num2str(windowSize) ', polyOrder='
num2str(polyOrder) ')']);
xlabel('Vaqt (s)'); ylabel('Amplituda');
Natija:
windowSize
oshishi bilan silliqlash kuchayadi, lekin juda katta oyna sinf sohada kerakli
o‘zgarishlarni ham yassilab yuboradi. polyOrder ortganda xususiyatlarni saqlab qolish
yaxshilanishi yoki aksincha buzilish kuzatilishi mumkin.
5-MASALA
Vazifa: Bir o‘lchovli real yoki sun’iy tovush (audio) signalini filtrlab, uning pastki yoki yuqori
chastota komponentalarini kesing. Bu yerda filtr turini (past/yuqori/polosa o‘tkazuvchi), tartibini
yoki kesish chastotasini o‘zgartirib ko‘rish mumkin.
O‘zgartirish mumkin bo‘lgan parametrlar
filterType – 'low', 'high' yoki 'bandpass'.
filterOrder – masalan, 2, 4, 6 va h.k.
cutOff1, cutOff2 – agar band-pass bo‘lsa, ikki chastotani ko‘rsatish kerak.
Matlab KODI (misol uchun past o‘tkazuvchi variantda ko‘rsatilgan):
%% 5-MASALA
% Sun'iy audio signal: 300 Hz va 800 Hz (Fs=2000 Hz)
Fs = 2000;
t = 0:1/Fs:0.01;
x = sin(2*pi*300*t) + 0.5*sin(2*pi*800*t);
filterType = 'low'; % 'low' yoki 'high' yoki 'bandpass'
filterOrder = 4;
cutOff1 = 500; % Agar 'bandpass' bo'lsa, [cutOff1, cutOff2] ko'rsatish kerak
cutOff2 = 700;
switch filterType
case 'low'
Wn = cutOff1/(Fs/2);
[b,a] = butter(filterOrder, Wn, 'low');
case 'high'
Wn = cutOff1/(Fs/2);
[b,a] = butter(filterOrder, Wn, 'high');
case 'bandpass'
Wn = [cutOff1, cutOff2]/(Fs/2);
[b,a] = butter(filterOrder, Wn, 'bandpass');
otherwise
error('Noto''g''ri filtr turi!');
end
% Filtrlash
y_filt = filtfilt(b, a, x);
% Natijani ko'rish
figure;
subplot(2,1,1);
plot(t, x);
title(['Asl signal (300 Hz & 800 Hz) - Fs = ' num2str(Fs) ' Hz']);
xlabel('Vaqt (s)'); ylabel('Amplituda');
subplot(2,1,2);
plot(t, y_filt, 'r');
title(['Filtrlashdan
keyingi
signal
num2str(filterOrder)]);
xlabel('Vaqt (s)'); ylabel('Amplituda');
('
filterType
'),
Order='
Natija:
filterType='low' bo‘lsa, ~300 Hz komponenta saqlanadi, ~800 Hz keskin
susayadi.
filterType='high' bo‘lsa, buning aksi kuzatiladi.
filterType='bandpass' holatida ikki chastota oralig‘iga mos ravishda filtrdan
o‘tkaziladi.
Xulosa
Yuqoridagi 5 ta masala bir o‘lchovli signallar (sinus, aralash chastotali signal, shovqinli signal,
audio signal) ustida filtrlashni amalga oshirishga oid amaliy misollarni ko‘rsatib berdi. Har bir
masalada o‘zgartirish mumkin bo‘lgan parametrlarga e’tibor qaratilgan:
1. Harakatchan o‘rtacha filtr – N, noiseLevel, freq parametrlarini o‘zgartirish.
2. IIR Butterworth past o‘tkazuvchi filtr – fc (kesish chastotasi) va filterOrder
parametrlarini sinab ko‘rish.
3. FIR band-pass filtr – firOrder, lowCut, highCut qiymatlarini o‘zgartirib
kuzatish.
4. Savitzky–Golay filtr – windowSize, polyOrder, noiseLevel kabi parametrlarda
o‘zgarishlarni sinab ko‘rish.
5. Audio signalda filtrlash – filtr turini (low, high, bandpass), tartibini
(filterOrder), kesish chastotalarini (cutOff1, cutOff2) mos ravishda belgilab,
natijalarni taqqoslash.
Mazkur masalalar Matlab yoki shunga o‘xshash muhitlarda signalga ishlov berishning asosiy
bosqichlarini o‘rganuvchilar uchun foydali bo‘lib, real (yoki sun’iy) ma’lumotlar ustida tajribalar
o‘tkazishga qulay imkon beradi.
5-AMALIY MASHGʻULOT
TASVIRLARGA MORFOLOGIK ISHLOV BERISHNI AMALGA
OSHIRISH
Maqsad: “Tasvirlarga morfologik ishlov berishni amalga oshirish Ikki
o‘lchovli signallar ustida filtrlashni amalga oshirish” mavzusini oʻrganish va shu
mavzu bo‘yicha masalalar yechishni oʻrganish.
Nazariy qism:
Amaliy qism:
Quyida «SIGNALLAR VA TASVIRLARGA ISHLOV BERISH» fanidagi
«Tasvirlarga morfologik ishlov berishni amalga oshirish» mavzusiga oid, qiymatini
o‘zgartirish mumkin bo‘lgan 5 ta masala va ularning yechimlari keltirilgan. Har bir masala
uchun bir nechta parametrlarni o‘zgartirib, tajriba o‘tkazish mumkin.
1-MASALA: Binar tasvirda Dilatatsiya amali
Vazifa: Binar tasvirga dilatatsiya (kengaytirish) amali qo‘llang. Dilatatsiya uchun turli strukturing
element (SE) shakllari (disk, rectangle, line va h.k.) va o‘lchamlarini o‘zgartirib natijani
kuzating.
O‘zgartirish mumkin bo‘lgan parametrlar:
SE_shape – strukturing element shakli (masalan, 'disk', 'rectangle', 'line').
SE_size – strukturing element o‘lchami.
Rasm nomi yoki matritsasi.
MATLAB KODI:
%% 1-MASALA
% 1. Binar tasvirni yuklash yoki yaratish
I = imread('text.png'); % Masalan, MATLAB kutubxonasidagi binar rasm
% Agar rangli yoki kulrang bo'lsa, avval binar rasmga o'tkazish kerak:
% I = im2bw(I_gray, 0.5);
% 2. Strukturing element (SE) ni tanlash
SE_shape = 'disk';
% 'disk', 'rectangle', 'line', 'diamond', ...
SE_size = 3;
% O'lcham parametri
SE = strel(SE_shape, SE_size);
% 3. Dilatatsiya amali
I_dilated = imdilate(I, SE);
% 4. Natijani ko'rish
figure;
subplot(1,2,1);
imshow(I);
title('Asl binar rasm');
subplot(1,2,2);
imshow(I_dilated);
title(['Dilatatsiya (SE=' SE_shape ', size=' num2str(SE_size) ')']);
Natija: Ob’ektlarning oq piksel hududlari kengaytiriladi, kichik bo‘shliqlar to‘ladi. SE_size
oshishi bilan kengaytirish kuchayadi.
2-MASALA: Binar tasvirda Erozsiya amali
Vazifa: Binar tasvirga erozsiya (toraytirish) amali qo‘llang. Erozsiya uchun turli strukturing
element shakllari va o‘lchamlarini o‘zgartiring. Ob’ektlarning qanday torayishini kuzating.
O‘zgartirish mumkin bo‘lgan parametrlar:
SE_shape – 'disk', 'rectangle', 'line' va h.k.
SE_size – SE ning o‘lchami (kattaligi).
MATLAB KODI:
%% 2-MASALA
% 1. Binar tasvirni yuklash
I = imread('circles.png'); % Binar rasm
% Agar rangli bo'lsa, im2bw() bilan konvertatsiya qilinadi.
% 2. Strukturing element yaratish
SE_shape = 'disk';
SE_size = 2;
SE = strel(SE_shape, SE_size);
% 3. Erozsiya amali
I_eroded = imerode(I, SE);
% 4. Grafik natijalar
figure;
subplot(1,2,1);
imshow(I);
title('Asl binar rasm');
subplot(1,2,2);
imshow(I_eroded);
title(['Erozsiya (SE=' SE_shape ', size=' num2str(SE_size) ')']);
Natija: Ob’ektlardagi oq piksel hududlari torayadi, nozik bo‘shliqlar kattalashadi. SE_size
oshishi bilan toraytirish kuchayadi.
3-MASALA: Kulrang tasvirda Ochish (Opening) va Yopish (Closing) amallarini qo‘llash
Vazifa: Kulrang (yoki binar) tasvirni mos ravishda ochish (Opening) va yopish (Closing) bilan
filtrlab ko‘ring. Strukturing element shakli va o‘lchamini o‘zgartirib, nuqta-shovqin yoki mayda
teshiklarni to‘ldirish natijalarini kuzating.
O‘zgartirish mumkin bo‘lgan parametrlar:
Tasvirning tipi (binar/kulrang).
SE_shape – 'disk', 'rectangle', 'line' va h.k.
SE_size – SE ning o‘lchami.
MATLAB KODI:
%% 3-MASALA
% 1. Tasvirni yuklash (binar yoki kulrang bo'lishi mumkin)
I_gray = imread('rice.png'); % Kulrang rasm (0..255)
% Agar morfologik amallarni binar ko'rinishda sinab ko'rmoqchi bo'lsak:
% Ibw = imbinarize(I_gray); % Binar ko'rinish
% 2. Strukturing element
SE_shape = 'disk';
SE_size = 5;
SE = strel(SE_shape, SE_size);
% 3. Ochish (Opening): avval erozsiya, so'ng dilatatsiya
I_open = imopen(I_gray, SE);
% 4. Yopish (Closing): avval dilatatsiya, so'ng erozsiya
I_close = imclose(I_gray, SE);
% 5. Grafik taqqoslash
figure;
subplot(1,3,1);
imshow(I_gray);
title('Asl kulrang rasm');
subplot(1,3,2);
imshow(I_open);
title(['Opening (SE=' SE_shape ', ' num2str(SE_size) ')']);
subplot(1,3,3);
imshow(I_close);
title(['Closing (SE=' SE_shape ', ' num2str(SE_size) ')']);
Natija:
Opening kichik obyektlar (shovqin, nuqta) ni yo‘qotish yoki “kesish” uchun
qulay, lekin katta ob’ektlar shaklini asosan saqlaydi.
Closing esa aksincha, kichik qorong‘u teshiklarni yo‘qotish yoki yupqa
bo‘shliqlarni to‘ldirishga yordam beradi.
4-MASALA: Tasvirdan morfologik gradientni topish
Vazifa: Kulrang tasvirning morfologik gradientini toping. Morfologik gradient – tasvirning dilate
va erode amallari orasidagi farq. Strukturing element shakli va o‘lchamini o‘zgartirib, chekka
(edge) larni sezish imkonini ko‘ring.
O‘zgartirish mumkin bo‘lgan parametrlar:
SE_shape – 'disk', 'rectangle', 'diamond' va h.k.
SE_size – SE ning o‘lchami (kattaligi).
Tasvirning turi (kulrang).
MATLAB KODI:
%% 4-MASALA
% 1. Kulrang tasvirni yuklash
I_gray = imread('cameraman.tif');
% 2. Strukturing element
SE_shape = 'disk';
SE_size = 3;
SE = strel(SE_shape, SE_size);
% 3. Dilate va Erode
I_dil = imdilate(I_gray, SE);
I_er = imerode(I_gray, SE);
% 4. Morfologik gradient
I_grad = I_dil - I_er;
% 5. Natijalarni chizish
figure;
subplot(2,2,1), imshow(I_gray), title('Asl tasvir');
subplot(2,2,2), imshow(I_dil), title('Dilatatsiya');
subplot(2,2,3), imshow(I_er), title('Erozsiya');
subplot(2,2,4),
imshow(I_grad),
title('Morfologik
I_{er})');
gradient
(I_{dil}
-
Natija: Morfologik gradient tasvir chekkalari va o‘tish hududlarini chiqarib beradi. SE_size
kattalashtirilsa, gradient yanada kengaygan chekkalarni ko‘rsatadi.
5-MASALA: Binar tasvirda Skelet (skeleton) yoki Ingichkalash (thinning) amallarini qo‘llash
Vazifa: Binar tasvirda ob’ektlarning skeletini yoki ingichka shaklini toping. Parametr sifatida bitta
yoki ketma-ket takrorlash orqali yakuniy natijani kuzating.
O‘zgartirish mumkin bo‘lgan parametrlar:
Ketma-ket thinning amallar soni.
Tasvir turi (binar).
Yoki qo‘llaniladigan maxsus morfologik struktur.
MATLAB KODI (Skeleton):
%% 5-MASALA
% 1. Binar tasvirni yuklash
I_bin = imread('blobs.png');
% Binar rasm, masalan
% 2. Skelet operatori
I_skel = bwmorph(I_bin, 'skel', Inf);
% 'Inf' - amallarni yakuniy stasionar holatga qadar takrorlash
% 3. Ingichkalash (thinning) amali
% I_thin = bwmorph(I_bin, 'thin', Inf);
% 4. Grafik natijalar
figure;
subplot(1,2,1);
imshow(I_bin);
title('Asl binar rasm');
subplot(1,2,2);
imshow(I_skel);
title('Skeleton (bwmorph: skel, Inf)');
% Agar thinning natijalarini ko'rish uchun:
% figure;
% imshow(I_thin);
% title('Ingichkalash (thinning) natijasi');
Natija:
Skeleton (skel) – ob’ektlarning asosiy “o‘q” yoki “ustun chiziqlari”ni beradi.
Thinning – ob’ektlarni muayyan qoidalarga asosan ingichka shaklga keltiradi
(masalan, yozuv belgilari suyaklarini olish, maxsus tahlil ishlari uchun qulay).
Xulosa
Yuqorida keltirilgan 5 ta masala tasvirlarga morfologik ishlov berishning asosiy amaliyotlarini
yoritib beradi:
1. Dilatatsiya – binar tasvir ob’ektlarini kengaytirish.
2. Erozsiya – binar tasvir ob’ektlarini toraytirish.
3. Ochish (Opening) va Yopish (Closing) – nuqta-shovqin yoki kichik
teshiklarni yo‘qotish/ to‘ldirish.
4. Morfologik gradient – tasvir chekkalarini aniqlash usuli.
5. Skelet (Skeleton) va Ingichkalash (Thinning) – binar ob’ektlarni asosiy
“suyak” yoki ingichka ko‘rinishga keltirish.
Har bir masalada strukturali element (SE) ning shakli va o‘lchamini (shuningdek, amallar ketmaketligi yoki takrorlanish sonini) o‘zgartirish orqali natija qanday o‘zgarishini kuzatish mumkin.
Bu parametrlarni samarali boshqarish morfologik filtrlash texnikasining moslashuvchanligini
ko‘rsatadi.
0
You can add this document to your study collection(s)
Sign in Available only to authorized usersYou can add this document to your saved list
Sign in Available only to authorized users(For complaints, use another form )