简体   繁体   中英

Removing a noisy pattern (like chess board) from image using matlab

I have a set of random images called dictionary (top in attached image). Any probe image is represented as a linear combination of the dictionary elements. Here is the dictionary and a reconstructed sample image: 在此处输入图片说明

在此处输入图片说明

For this purpose the probe image is divided to 16*16 blocks. Each block is a linear combination of dictionary elements. The reconstructed image have a pattern like chess board in some regions, How can I remove this pattern and improve the image visualization? I've tried some filters ( medfilt2 , wiener2 ) but it didn't help.

Gaussian filtering seems appropriate to me in this case. Note the image does not contain enough information to reconstruct the image exactly. Therefore, one should always make the trade of between blurring and a sharp but rasterised image.

figure
sigma = 3; % smaller value => sharper but more rasterised
Ifilter = imgaussfilt(I, sigma); 
imshow(Ifilter);

The left image ( sigma = 3 ) is less rasterised, but the right image ( sigma = 2 ) is sharper.

sigma = 3 sigma = 2

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM