/KBR-Denoising

code of KBR MSI denoising

Primary LanguageMatlab

KBR-Denoising

Outline:

Folder structure
Usage
Citation
URL of third-party toolboxes and functions

Folder structure:

data\           : example multispectral images (MSI) data 
    |-- testMSI_1.mat      : example MSI data 1
    |-- testMSI_2.mat      : example MSI data 2
    |-- testMSI_3.mat      : example MSI data 3
    |-- testMSI_4.mat      : example MSI data 4
lib\            : library of code
    |-- KBRreg\            : helper functions of the ITSReg method
    |-- tensor_toolbox\    : toolbox for tensor operations [1]
    |-- my_tensor_toolbox\ : another toolbox for tensor operations 
    |-- quality_assess\    : functions of quality assessment indices
    |       |-- ssim_index.m            : SSIM [2]
    |       |-- FeatureSIM.m            : FSIM [3]
    |       |-- ErrRelGlobAdimSyn.m     : ERGAS
    |       |-- SpectAngMapper.m        : SAM
    |       |-- MSIQA.m                 : interface for calculating PSNR and the four indices above
    |-- compete_methods : competing methods (down loaded or implemented based on reference papers)
    |       |-- ksvdbox\                : K-SVD toolbox [4]
    |       |-- ompbox\                 : dependency of toolbox ksvdbox [5]
    |       |-- naonlm3d\               : 3D NLM toolbox [6]
    |       |-- tensor_SVD\             : tSVD toolbox [10]
    |       |-- BM3D\                   : BM3D toolbox [7]
    |       |-- BM4D\                   : BM4D toolbox [8]
    |       |-- tensor_dl\              : TDL toolbox [9]
    |       |-- ui_utils\               : scripts used in GUI
    |       |-- NLM3D.m                 : 3D NLM using toolbox naonlm3d 
    |       |-- LRTA.m                  : LRTA method [9]
    |       |-- PARAFAC.m               : PARAFAC method [9]
    |       |-- LRTVdenoising.m         : Trace-TV method 
    |       |-- tSVD_Denoising.m        : t-SVD method[10] 
    |-- togetGif.m         : function for getting GIF result
    |-- showMSIResult.m    : function for showing MSI result
Demo.m          : scripts that applies the methods and calculates the QA indices
KBR_DeNoising.m : core function of the KBRreg-based MSI denoising method 
KBRreg.m        : function for sloving the intrinsic tensor sparsity regular model 

Usage:

For MSI with Gaussian noise, you can simply follow these steps:
    1.Re-arrange the MSI into [0, 1].
    2.Add the folder 'lib'into path, and use the function KBR_DeNoising as follows:
        [ clean_img ] = KBR_DeNoising( noisy_img, noise_variance )
Please type 'help KBR_DeNoising ' to get more information.

You may find example codes in file Demo.m

Also, you can use the demo to see some comparison. You can:
  1. Type 'Demo' to to run various methods and see the pre-computed results.
  2. Use 'help Demo' for more information.
  3. Change test MSI by simply modifying variable 'filename' in Demo.m (NOTE: make sure your MSI
     meets the format requirements).
  4. Change noise level by modifying variables  'sigma_ratio' in Demo.m
  5. Select competing methods by turn on/off the enable-bits in Demo.m

Citation:

Qi Xie, Qian Zhao, Deyu Meng*, & Zongben Xu
Kronecker-Basis-Representation Based Tensor Sparsity and Its Applications to Tensor Recovery[J]. 
IEEE Transactions on Pattern Analysis & Machine Intelligence, 2017, PP(99):1-1. (accepted)

BibTeX:
  @article{Qi2017Kronecker,  
  title={Kronecker-Basis-Representation Based Tensor Sparsity and Its Applications to Tensor Recovery},  
  author={Qi, Xie and Qian, Zhao and Meng, Deyu and Xu, Zongben},  
  journal={IEEE Transactions on Pattern Analysis & Machine Intelligence},  
  volume={PP},  
  number={99},  
  pages={1-1},  
  year={2017},
  }

URL of the toolboxes and functions:

[1]  tensor_toolbox     http://www.sandia.gov/~tgkolda/TensorToolbox/index-2.5.html
[2]  ssim_index.m       https://ece.uwaterloo.ca/~z70wang/research/ssim/
[3]  FeatureSIM.m       http://www4.comp.polyu.edu.hk/~cslzhang/IQA/FSIM/FSIM.htm
[4]  ksvdbox            http://www.cs.technion.ac.il/~ronrubin/software.html
[5]  ompbox             http://www.cs.technion.ac.il/~ronrubin/software.html
[6]  naonlm3d           http://personales.upv.es/jmanjon/denoising/arnlm.html
[7]  BM3D               http://www.cs.tut.fi/~foi/GCF-BM3D/
[8]  BM4D               http://www.cs.tut.fi/~foi/GCF-BM3D/
[9]  tensor_dl          http://gr.xjtu.edu.cn/web/dymeng/3
[10] t-SVD              http://www.ece.tufts.edu/~shuchin/software.html

Acknowledgements:

We would liked to thank Epitropou Georgios (a member of Electronics Laboratory, Optoelectronics Group, Dept. of 
Electronics & Comp. Engineering, Technical University of Crete University Campus, Kounoupidiana) for he help us
to provide a memory saving version of our code, which is useful for someone with little memory who needs to trim
some run time.