<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Image Processing |</title><link>https://pedram-ep.github.io/portfolio/tags/image-processing/</link><atom:link href="https://pedram-ep.github.io/portfolio/tags/image-processing/index.xml" rel="self" type="application/rss+xml"/><description>Image Processing</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Wed, 01 Jan 2025 00:00:00 +0000</lastBuildDate><image><url>https://pedram-ep.github.io/portfolio/media/icon_hu_d41a6b52b0e960df.png</url><title>Image Processing</title><link>https://pedram-ep.github.io/portfolio/tags/image-processing/</link></image><item><title>Patch-based Image Denoising via Higher Order SVD</title><link>https://pedram-ep.github.io/portfolio/projects/hosvd-image-denoising/</link><pubDate>Wed, 01 Jan 2025 00:00:00 +0000</pubDate><guid>https://pedram-ep.github.io/portfolio/projects/hosvd-image-denoising/</guid><description>&lt;p&gt;A near complete implementation of the method in the paper &amp;ldquo;Image Denoising using the Higher Order Singular Value Decomposition&amp;rdquo;. This project uses the Python language and vast libraries to apply this algorithm for grayscale images, and evaluates it by applying the method on the dataset &amp;ldquo;CBSD68&amp;rdquo; and calculating different image-difference scores.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;This project a Python implementation of patch-based image denoising using Higher Order Singular Value Decomposition (HOSVD), based on the method introduced in:&lt;/p&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;&lt;strong&gt;&amp;ldquo;Image Denoising using the Higher Order Singular Value Decomposition&amp;rdquo;&lt;/strong&gt;&lt;br&gt;
Ajit Rajwade, Anand Rangarajan, and Arunava Banerjee.&lt;br&gt;
&lt;em&gt;IEEE Transactions on Pattern Analysis and Machine Intelligence&lt;/em&gt;, 2013.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p align="center"&gt;
&lt;img src="results/figures/image-00-results-cropped.png?raw=true" alt="Denoising example" width="600"&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="methodology"&gt;Methodology&lt;/h2&gt;
&lt;p&gt;The algorithm works by:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Partitioning images into overlapping 8×8 patches&lt;/li&gt;
&lt;li&gt;Grouping similar patches using spiral window search&lt;/li&gt;
&lt;li&gt;Constructing 3D tensors for each patch group&lt;/li&gt;
&lt;li&gt;Applying HOSVD decomposition&lt;/li&gt;
&lt;li&gt;Thresholding core tensor values (hard threshold at τ = σ√(s²K))&lt;/li&gt;
&lt;li&gt;Reconstructing denoised patches&lt;/li&gt;
&lt;li&gt;Aggregating patches with averaging&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;em&gt;Note: Implementation is optimized for grayscale images and omits the Wiener filtering step from the original paper&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="evaluation-metrics"&gt;Evaluation Metrics&lt;/h2&gt;
&lt;p&gt;We used seven metrics to evaluate denoising performance on the CBSD68 dataset:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Formula&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Ideal Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;MSE&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;$\frac{1}{MN}\sum_{i=0}^{M-1}\sum_{j=0}^{N-1}[I(i,j)-K(i,j)]^2$&lt;/td&gt;
&lt;td&gt;Mean Squared Error&lt;/td&gt;
&lt;td&gt;Lower is better&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;RMSE&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;$\sqrt{\text{MSE}}$&lt;/td&gt;
&lt;td&gt;Root Mean Squared Error&lt;/td&gt;
&lt;td&gt;Lower is better&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;MAE&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;$\frac{1}{MN}\sum_{i=0}^{M-1}\sum_{j=0}^{N-1}\|I(i,j)-K(i,j)\|$&lt;/td&gt;
&lt;td&gt;Mean Absolute Error&lt;/td&gt;
&lt;td&gt;Lower is better&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;PSNR&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;$10 \cdot \log_{10}\left(\frac{L^2_{\max}}{\text{MSE}}\right)$&lt;/td&gt;
&lt;td&gt;Peak Signal-to-Noise Ratio&lt;/td&gt;
&lt;td&gt;Higher is better&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;SSIM&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;$\frac{(2\mu_x\mu_y + c_1)(2\sigma_{xy} + c_2)}{(\mu_x^2 + \mu_y^2 + c_1)(\sigma_x^2 + \sigma_y^2 + c_2)}$&lt;/td&gt;
&lt;td&gt;Structural Similarity Index&lt;/td&gt;
&lt;td&gt;Closer to 1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;NRMSE&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;$\frac{\sqrt{\frac{1}{N}\sum_{i=1}^N(x_i - y_i)^2}}{\text{median}(\|x\|)}$&lt;/td&gt;
&lt;td&gt;Normalized RMSE&lt;/td&gt;
&lt;td&gt;Lower is better&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;UQI&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;$\frac{4\sigma_{xy}\bar{x}\bar{y}}{(\sigma_x^2 + \sigma_y^2)(\bar{x}^2 + \bar{y}^2)}$&lt;/td&gt;
&lt;td&gt;Universal Quality Index&lt;/td&gt;
&lt;td&gt;Closer to 1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="references"&gt;References&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Rajwade, A., Rangarajan, A., &amp;amp; Banerjee, A. (2013). &amp;ldquo;&lt;em&gt;Image Denoising using the Higher Order Singular Value Decomposition&lt;/em&gt;&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;Feschet, F. (2019). “&lt;em&gt;Implementation of a denoising algorithm based on High‑Order Singular Value Decomposition of tensors&lt;/em&gt;”&lt;/li&gt;
&lt;li&gt;Guo, J., Chen, H., Shen, Z., and Wang, Z. (2022). “&lt;em&gt;Image denoising based on global image similar patches searching and HOSVD to patches tensor&lt;/em&gt;”&lt;/li&gt;
&lt;li&gt;Wang, Z., and Bovik, A. C. (2002). “&lt;em&gt;A universal image quality index&lt;/em&gt;”&lt;/li&gt;
&lt;li&gt;Wang, Z., Bovik, A. C., Sheikh, H. R., and Simoncelli, E. P., “&lt;em&gt;Image quality assessment: From error visibility to structural similarity&lt;/em&gt;”&lt;/li&gt;
&lt;li&gt;CBSD68‑dataset: Color BSD68 dataset for image denoising benchmarks. Available at:
&lt;/li&gt;
&lt;/ol&gt;</description></item></channel></rss>