Дослідження методів обробки зображень в MatLab

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
ІКТА
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2011
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Системи запису та відтворення інформації
Група:
ЗІ-32

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» ІКТА кафедра ЗІ З В І Т до лабораторної роботи №4 з навчальної дисципліни: «Системи запису та відтворення інформації» на тему: «Дослідження методів обробки зображень в MatLab» Львів – 2011 Мета роботи: набути вміння розробляти власні методи стиснення зображень та оцінювати їх ефективність. Завдання Ознайомитись з теоретичним матеріалом. Завантажити файл зображення вказаний в завданні відповідно до свого варіанту. Вивести основну інформацію про файл: кількість пікселів по горизонталі і вертикалі, тип зображення — кольорове/монохромне, кількість біт на піксел, загальний розмір зображення в бітах. Написати JPEG-подібний кодер, згідно етапів розглянутих в теоретичній частині, який би стискав зображення з заданим степенем стиску G. Вивести на екран оригінальне та декомпресоване зображення для порівняння їх якості. Розрахувати реальну степінь стиснення зображення. Навести покрокові результати всіх етапів стиснення та відтворення довільного блоку 8x8 пікселів Вашого зображення. Варіант – 1, назва файлу belmont.tiff. Лістинг програми clear all; info = imfinfo('E:\belmont2.tiff') Y=imread('E:\belmont2.tiff'); [N,M]= size(Y); N_Block=fix(N/8); M_Block=fix(M/8); if(N-N_Block*8)~=0; Dod=8-((N-N_Block*8)); Y=[Y; zeros(Dod,M)]; N_Block=N_Block+1; end; if(M-M_Block*8)~=0; Dod=8-((M-M_Block*8)); Y=[Y zeros(N_Block*8,Dod)]; M_Block=M_Block+1; end; Y1=double(Y)-128; Y_DCT=blkproc(Y1, [8,8], 'dct2'); G=10; for ii = 1:8 for jj = 1:8 Q_Table(ii,jj)=1+(ii+jj-1)*G; end; end; for ii=1:N_Block for jj=1:M_Block Y_Q((8*ii-7):(8*ii), (8*jj-7) : (8*jj)) = round (Y_DCT((8*ii-7):(8*ii), (8*jj-7) : (8*jj)) ./ Q_Table ); end; end; Y_Scan=zeros(N_Block*M_Block, 64); count=1; for j=1:N_Block for i=1:M_Block x=Y_Q(8*j-7:8*j, 8*i-7:8*i); ZigZag= [x(1,1) x(1,2) x(2,1) x(3,1) x(2,2) x(1,3) x(1,4) x(2,3) x(3,2) x(4,1) x(5,1) x(4,2) x(3,3) x(2,4) x(1,5) x(1,6) x(2,5) x(3,4) x(4,3) x(5,2) x(6,1) x(7,1) x(6,2) x(5,3) x(4,4) x(3,5) x(2,6) x(1,7) x(1,8) x(2,7) x(3,6) x(4,5) x(5,4) x(6,3) x(7,2) x(8,1) x(8,2) x(7,3) x(6,4) x(5,5) x(4,6) x(3,7) x(2,8) x(3,8) x(4,7) x(5,6) x(6,5) x(7,4) x(8,3) x(8,4) x(7,5) x(6,6) x(5,7) x(4,8) x(5,8) x(6,7) x(7,6) x(8,5) x(8,6) x(7,7) x(6,8) x(7,8) x(8,7) x(8,8) ]; Y_Scan(count , :)=ZigZag; count=count+1; end; end; delta = 0; midle =[ ]; for ii=1:N_Block*M_Block vect = Y_Scan(ii,2:64); n=0; res=[]; for jj=1:63 if vect(jj)==0 n=n+1; else res = [res n vect(jj)]; n=0; end; end; res= [res 0 0 ]; Y_C=[midle (Y_Scan(ii,1)-delta) res]; delta=Y_Scan(ii,1); midle=Y_C; end; Bit_Count = 0; for ii=1:length(Y_C) elem=Y_C(ii); switch elem case 0, kod=1; case 1, kod=4; case -1, kod=4; case 2, kod=4; case -2, kod=4; case 3, kod=5; case -3, kod=5; case 4, kod=5; case -4, kod=5; case 5, kod=7; case -5, kod=7; case 6, kod=7; case -6, kod=7; case 7, kod=7; case -7, kod=7; case 8, kod=7; case -8, kod=7; otherwise kod=13; end; Bit_Count =Bit_Count+kod; end; m=N*M*8; Compression_Ratio = m/(Bit_Count) for ii =1:N_Block for jj =1:M_Block Y_R(8*ii-7:8*ii, 8*jj-7:8*jj)=Y_Q(8*ii-7:8*ii, 8*jj-7:8*jj) .*Q_Table; end; end; Rec=uint8(blkproc(Y_R, [8,8], 'idct2')+128); z=sprintf('Compression Ratio = %f', Compression_Ratio); subplot(1,2,1); imshow(Y(1:N, 1:M)); title('Original', 'FontSize',14); subplot(1,2,2); imshow(Rec(1:N, 1:M)); title(z,'FontSize',14); Оригінальне та декомпресоване зображення  Розрахована степінь стиску – 6.1766 Таблиця квантування 11 21 31 41 51 61 71 81 21 31 41 51 61 71 81 91 31 41 51 61 71 81 91 101 41 51 61 71 81 91 101 111 51 61 71 81 91 101 111 121 61 71 81 91 101 111 121 131 71 81 91 101 111 121 131 141 81 91 101 111 121 131 141 151 Покрокові результати стиснення блоку 8x8 Вихідний блок 8x8 57 48 48 48 48 48 48 48 57 57 48 48 48 48 48 48 57 48 48 57 48 48 48 48 48 48 48 48 48 48 36 40 36 36 36 48 48 48 36 48 40 31 36 40 48 40 36 36 36 40 31 36 36 36 36 36 40 40 36 36 31 31 40 36 Блок після зсуву рівня -71 -80 -80 -80 -80 -80 -80 -80 -71 -71 -80 -80 -80 -80 -80 -80 -71 -80 -80 -71 -80 -80 -80 -80 -80 -80 -80 -80 -80 -80 -92 -88 -92 -92 -92 -80 -80 -80 -92 -80 -88 -97 -92 -88 -80 -88 -92 -92 -92 -88 -97 -92 -92 -92 -92 -92 -88 -88 -92 -92 -97 -97 -88 -92 Блок після ДКП -676.3750 6.9500 -0.9519 6.0516 9.1250 -0.0929 -0.0116 -4.2872 45.0571 7.3549 2.7070 1.9444 1.1226 1.5038 3.2184 -0.6785 -4.1294 4.9380 14.2238 -1.1943 -6.3270 4.6263 -6.1543 3.4208 -8.0477 - 9.1457 -5.5158 4.5304 4.4297 -3.9114 3.0288 2.9180 -1.8750 -1.3316 -1.1897 -2.7884 -0.8750 -1.3134 3.3341 -1.2407 -2.4310 4.5444 -1.2529 1.2779 -1.5930 0.3838 0.9603 0.2308 2.1164 -0.7398 -2.1543 0.9398 4.6502 7.5726 2.0262 4.2938 1.3667 -7.9891 0.7168 -2.3803 3.5732 1.9821 -1.0417 -5.2692 Квантування -61 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Zig-Zag -сканування -61 0 2 0 0 0 0 0 -62 2 3 0 1 -1 0 0 -67 1 1 0 1 0 0 0 -71 -1 2 -1 1 0 0 0 -63 -2 -3 1 2 -1 1 0 -62 -5 -1 0 2 1 -1 -1 -36 -2 -3 -3 -5 1 -1 0 -38 4 6 1 2 0 0 0 Висновок На даній лабораторній роботі я набув вміння розробляти власні методи стиснення зображень та оцінювати їх ефективність. Отримане декомпресоване зображення є розмитішим порівняно з оригінальним, оскільки при стисненні відбулися втрати.
Антиботан аватар за замовчуванням

16.01.2013 12:01-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!