Algorithm 1.
Initialization |
intensity of a pixel at row and column in the original OCT image |
The estimated attenuation coefficient of a pixel at row and column in the original OCT image | |
pixel size in mm | |
number of pixels in each A-line (number of rows) | |
number of A-lines (number of columns) | |
total number of pixels in the OCT image | |
feature vector including (, ) | |
desired number of clusters | |
KM clustering result | |
sliding window around pixel in the original image | |
size of sliding window | |
Weight matrix for pixels in | |
Number of pixels in that belong to the same cluster as the central pixel | |
A matrix of ones with size 3*3 | |
1. Feature Extraction 1.1. For each pixel in position , calculate and assign a set of features. We only use the attenuation coefficient [38]: 1.2. For each pixel at position , assign the feature vector : 2. Clustering 2.1. Apply KM clustering which is 3. Apply Filtering: for a sliding window of size around pixel , 2.2. Apply median filter on the clustering results: 3. Apply Filtering: for a sliding window of size around pixel , 3.1. Estimate the noise variance for each individual cluster 3.2. Compute the weight matrix for all the pixels in . The elements of , are determined as follows: 3.2.1. Lee filter (LF): all the pixels in the window are weighted the same 3.2.2. Jin’s adaptive Wiener filter (AWF) 3.2.3. Cluster-based LF (CSRF-LF) 3.2.4. Cluster-based adaptive Wiener filter (CSRF-AWF) 3.3. For each window, calculate the local statistics: 3.4. Calculate the new pixel value: 4. Smoothing the cluster edges with a 3 × 3 Mean filter: |