%% % % Diplomova prace % Martin Krupicka % FEL CVUT % leden 2017 % % Realizace objektivniho hodnoceni kvality obrazu prostrednictvim metrik % SNR, PSNR a MSE. Hodnoti se kvalita HDR snimku slozenych z N LDR JPEG % snimku s ruznou kvalitou. Referenci je HDR snimek slozeny z N LDR snimku % bez komprese. Hodnota PSNR neni v praci dale vyuzivana. % % Jak teoreticka, tak prakticka cast teto prace % vychazi z materialu vypracovanych v ramci magisterskeho % predmetu Projekt individualni (A2M37IND) [1]. % % %% close all; clear all; clc; %% % nastaveni rozsahu poradovych cisel obrazku (index cisla v nazvu) % Pokud nastavime stejne cislo v obou promennych, zpracuje cyklus jen jeden % soubor. Jinak lze vice souboru najednou, pokud maji poradova cisla % presne za sebou. pocatecni_soubor = 1; koncovy_soubor = 2; % pocet zpracovavanych souboru pocet_souboru = koncovy_soubor-pocatecni_soubor+1; % pocet expozic v puvodni LDR serii pocet_expozic = 3; % pocet objektivnich metrik - zakladne 3 - MSE, SNR, PSNR - PSNR ale dale % v teto praci nevyuzivano pocet_objektivnich_metrik = 3; % expozicni krok mezi LDR snimky ve zdrojove serii krok_deltafstops = 5; % parametr kvality JPEG komprese LDR souboru v serii N LDR q_pocatecni = 19; q_koncove = 99; q_krok = 20; q=q_pocatecni:q_krok:q_koncove; % pomocny krok pro zjisteni poctu uzivanych hodnot q % pro inicializaci tabulky v nasledujicim kroku % inicializace tabulky potrebne velikosti pro zapis vysledku tabulka_objektivniho_hodnoceni = zeros(size(q,2), 1+pocet_souboru*pocet_objektivnich_metrik); % +1 pro parametr JPEG komprese q a pak pocet metrik pro kazdy soubor % pomocny index pro pruchody cyklem index_sloupec = -1; for i=pocatecni_soubor:koncovy_soubor % pomocny index pro pruchody cyklem index_pruchodu_cyklem_radek = 1; % prvni hodnoceni pro prvni soubor dam do sloupce 2 a pak to pro kazdy % soubor pousouvam o +3 index_sloupec = index_sloupec + 3; % reference - HDR obrazek vznikly kombinaci serie LDR snimku bez komprese HDR_ref = hdrimread(['in' int2str(i) '_slozeny_uniform_REFERENCE_bezeztratova_deltafstops_' num2str(krok_deltafstops) '.pfm']); % cyklus pro pruchod ruznymi Q for q=q_pocatecni:q_krok:q_koncove % hodnoceny HDR snimek - HDR obrazek vznikly kombinaci serie LDR JPEG % snimku(s kompresi nastavene kvality) HDR_hodnoceny = hdrimread(['in' int2str(i) '_slozeny_uniform_JPEG_serie_q_' int2str(q) '_deltafstops_' num2str(krok_deltafstops) '.pfm']); % vypocet PSNR, SNR, MSE [peaksnr_HDR,snr_HDR] = psnr(HDR_hodnoceny, HDR_ref); % PSNR i SNR vychazi rovnou v dB, PSNR dale v praci nevyuzivano mse_HDR = immse(HDR_hodnoceny, HDR_ref); % ulozeni q, PSNR, SNR, MSE do tabulky hodnot tabulka_objektivniho_hodnoceni(index_pruchodu_cyklem_radek,1) = q; tabulka_objektivniho_hodnoceni(index_pruchodu_cyklem_radek,index_sloupec) = peaksnr_HDR; tabulka_objektivniho_hodnoceni(index_pruchodu_cyklem_radek,index_sloupec+1) = snr_HDR; tabulka_objektivniho_hodnoceni(index_pruchodu_cyklem_radek,index_sloupec+2) = mse_HDR; % inkrementace pomocneho indexu pro nastaveni noveho radku tabulky % vysledku index_pruchodu_cyklem_radek = index_pruchodu_cyklem_radek+1; end end % ulozeni vysledku, vysledne tabulky hodnoceni, do MAT souboru save('SNR_MSE_NLDRJPEG_slozeny_HDR_ruzne_JPEG_q.mat','tabulka_objektivniho_hodnoceni');