Сжатое восприятие с использованием Matlab

Я пытаюсь реализовать технику сжатия с использованием matlab, чтобы восстановить изображение из меньшего количества измерений.

До сих пор я делил изображение на блоки 8 на 8, затем умножал каждый блок, считывая матрицу PHI, которая является гауссовой случайной матрицей, после чего декодировал сжатые блоки, используя CVX или L1 Magic.

Проблема в том, что я не получаю хороших результатов, так может кто-нибудь помочь мне, пожалуйста?

пример кода

x=imread('greyscale_image.tiff');
x=im2double(x);
x_1blk=x(1:8,1:8);
xdct=dct2(x_1blk);
xq=xdct/quanMTX;
xq=reshape(xq,[],1);
y=phi*xq;

x0=phi.'*y;
tic
s1=l1eq_pd(x0, phi, [], y,1e-3);
toc
s1=reshape(s1,8,8);
s1=s1*quantMTX;
s1=idct2(s1);

Я получаю около 25 000 за PSNR, в то время как я ожидаю получить около 29 000

0 ответов

Другие вопросы по тегам