This is the source code of paper named "Fick Diffusion Law Inspired Single Image Detail Enhancement". This paper is submitted to IEEE Transactions on Neural Networks and Learning Systems.
This repository contains the MATLAB implementation of the FLIDE algorithm proposed in the paper:
"[Fick Diffusion Law Inspired Single Image Detail Enhancement]"
Authors:[He Jiang {Member, IEEE}], [Jiahe Jiang]
Abstract: Single image detail enhancement algorithms based on residual learning often employ greedy search strategies, which renders the system prone to falling into local optima. To address this issue, this study proposes a single image detail enhancement algorithm inspired by Fick Diffusion Law, named FLIDE.
The algorithm models the image patch matching problem as a diffusion transport process of molecules within non-uniform concentration and potential energy fields:
Initialization Stage (Concentration Gradient): The algorithm utilizes the non-uniformity of the solution population in spatial distribution to construct a macroscopic “concentration gradient”. The resulting substantial diffusion flux provides the search agents with momentum for long-distance cross-region migration, enabling them to spontaneously escape the constraints of local extrema akin to physical diffusion. Guidance Mechanism (Potential Energy): Subsequently, a potential energy guidance mechanism is introduced to map matching errors to “potential energy.” By leveraging local and global potential energy gradients to dynamically adjust the search step size, the algorithm drives the molecules to transition smoothly from high-flux exploration to low-flux steady-state locking.
Results: Experimental results demonstrate that FLIDE outperforms existing algorithms on multiple public datasets such as RealSRSet, BSDS200, and T91. Specifically, under
The code has been tested and verified on the following platform:
- MATLAB Version: R2025a or later
- Operating System: Windows 10/11, Linux, or macOS
To run the code successfully, the following MATLAB toolboxes are required:
- Image Processing Toolbox (Required for image I/O, resizing, and metric calculation)
- Parallel Computing Toolbox (Required for the
parpoolacceleration used in the core algorithm)
Download or clone this repository to your local machine. bash git clone [https://github.com/hehesjtu/FLIDE-Implementation.git](https://github.com/hehesjtu/FLIDE-Implementation.git)
The following directory hierarchy outlines the organization of the repository:
FLIDE/
├── data/ # Sample images for testing purposes
│ ├── example1.png
│ └── example2.png
│ └── ...
├── results/ # Enhanced results generated by FLIDE
│ ├── example1_enhanced.png
│ └── example2_enhanced.png
│ └── ...
├── FLIDE.p # Pre-compiled core algorithm (P-code)
├── main.m # Main entry script with GUI
├── README.md # Project documentation
└── requirements.txt # List of MATLAB toolboxes and dependencies
This implementation provides a user-friendly GUI for testing the algorithm on custom images.
- Open MATLAB and navigate to the repository folder.
- In the MATLAB Command Window, type the following command to launch the interface:
main - GUI Operations: Click "Load Image" to select an input image (supports .png, .jpg, .bmp, .tif). Adjust the "Enhance Factor" if necessary (Default is 4.0). Click "Run FLIDE" to process the image. The status bar will indicate the progress. Upon completion, the PSNR and SSIM metrics will be displayed in the interface. Click "Save Result" to export the enhanced image.
main.m: The main entry point script containing the GUI implementation and interaction logic.
FLIDE.p: The pre-compiled binary file of the core FLIDE algorithm.
Note: The core algorithm is provided as a P-code file for copyright protection. It is functionally identical to the source code described in the paper.
data/: (Optional) Contains sample images for testing.
results/: Stores the corresponding enhanced images processed by the FLIDE algorithm, serving as a quality reference.