mavzu. Dastlabki qayta ishlash. Kontrastni o’zgartirish. Tasvirni silliqlash. SHovqinni bartaraf etish.
Reja:
Tasvirlarni dastlabki qayta ishlash va kontrastni o’zgartirish
Tasvirlarni silliqlash
SHovqinni bartaraf etish
Rangli tasvirni tekishlash metodini ko’rib chiqamiz.
Tasvirlarni tekishlash uchun chiziqli fazoviy filьtrlar ‘average’, ‘disc’ va ‘gaussian’ optsiyalaridan foydalangan holda fspecial funktsiyasida quriladi. Filьtrning generatsiyasidan so’ng, imfilter funktsiyasi yordamida bevosita filьtr protsedurasi amalga oshiriladi.
Qandaydir I RGB-tasvirni tekishlash jarayoni uchta asosiy qadamdan iborat:
Boshlang’ich tasvirni yuklaymiz va uni vizuallashtiramiz: I=imread(‘westconcordaerial.bmp’);
figure, imshow(I);
Tasvirning alohida rangli komponentlarini ajratib olamiz: IR=I(:,:,1); figure, imshow(IR);
IG=I(:,:,2); figure, imshow(IG);
IB=I(:,:,1); figure, imshow(IB);
fspecial funktsiyasi yordamida qandaydir tekislovchi f filьtrni shakllantiramiz.
f=fspecial(‘average’,15);
imfilter funktsiyasining ‘replicate’ optsiyasi orqali har bir rang komponentasi uchun tekislashni amalga oshiramiz.
IR_filtered=imfilter(IR,f,‘replicate’); figure, imshow(IR_filtered);
IG_filtered=imfilter(IG,f,‘replicate’); figure, imshow(IG_filtered);
IB_filtered=imfilter(IB,f,‘replicate’); figure, imshow(IB_filtered);
Endi tekislangan rang komponentlaridan qayta ishlangan RGB- tasvirni qurish lozim.
I_filtered=cat(3, IR_filtered, IG_filtered, IB_filtered); figure, imshow(I_filtered);
Ko’p o’lchovli filьtratsiya
imfilter funktsiyasi ko’p o’lchovli tasvirlarni ham qayta ishlay oladi.
Har bir rang qavatini filьtrlash amalga oshirilgan rangli tasvir qayta ishlovini ko’rib chiqamiz:
Tasvirni o’qish va vizuallashtirish. rgb = imread('peppers.png'); imshow(rgb);
Tasvirni filьtrlash va natijani vizuallashtirish. h = ones(5,5)/25;
rgb2 = imfilter(rgb,h); figure, imshow(rgb2)
MATLAB tizimi bir nechta ikki o’lchovli va ko’p o’lchovli filьtrlash funktsiyalariga ega. filter2 funktsiyasi ikki o’lchovli chiziqli filьtrlashni bajaradi, conv2 ikki o’lchovli signallarni yasaydi (svertka), convn – esa ko’p o’lchovli signallarni. Bu funktsiyalarning xar biri ishlash mobaynida, boshlang’ich ma’lumotlar double formatida berilishi lozim. Natija ham double formatida ko’rsatib o’tiladi. Bu funktsiyalar qirralar ishlash paytida har doim yetmayotgan piksellarni nollar bilan to’ldiradi va boshqa usulni qo’llab-quvvatlamaydi.
Yuqoridagi funktsiyalardan farqli ravishda, imfilter boshlang’ich ma’lumotlarni double formatiga o’tkazishni talab qilmaydi hamda imfilter tasvir qirrasidagi yetmayotgan elementlarni to’ldirishning bir nechta variantlariga ega.
Oldindan belgilangan filьtr tiplaridan foydalanish I = imread('moon.tif');
h = fspecial('unsharp') h =
-0.1667
|
-0.6667
|
-0.1667
|
-0.6667
|
4.3333
|
-0.6667
|
-0.1667
|
-0.6667
|
-0.1667
|
I2 = imfilter(I,h);
imshow(I), title('Boshlangich tasvir')
figure, imshow(I2), title('Qayta ishlangan tasvir')
Kiruvchi rasm Qayta ishlangan rasm
Do'stlaringiz bilan baham: |