繁体   English   中英

结合SVD和小波变换的图像增强

[英]Image Enhancement using combination between SVD and Wavelet Transform

我的目标是处理图像上的照明和表情变化 因此,我尝试实现MATLAB代码,以便仅处理图像中的重要信息。 换句话说,仅使用图像上的“有用”信息。 为此,必须从图像中删除所有不重要的信息。

参考: 本文

让我们看看我的步骤:

1)应用直方图均衡化以获得histo_equalized_image=histeq(MyGrayImage) 因此可以在一定程度上处理较大的强度变化。

2)histo_equalized_image上应用svd近似值。 但是在执行此操作之前,我应用了svd分解( [LDR]=svd(histo_equalized_image) ),然后使用这些奇异值使派生图像J=L*power(D, i)*R ,其中i在1之间变化和2。

3)最后,将派生图像与原始图像合并为: C=(MyGrayImage+(a*J))/1+a 其中a从0到1。

4)但以上所有步骤在不同条件下均无法正常执行。 因此,最后,应该使用小波变换来处理这些变化(我们仅使用LL图像块)。 低频成分包含有用的信息,不重要的信息也会丢失在该成分中。 (LL)组件在光照变化和表情变化方面无效。

我为此编写了一个matlab代码,我想知道我的代码是否正确(如果不正确,那么如何更正)。 此外,我想知道是否可以优化这些步骤。 我们可以改善这种方法吗? 如果是,那怎么办? 请我帮忙。

现在让我们看看我的Matlab代码:

%Read the RGB image
image=imread('img.jpg');

%convert it to grayscale
image_gray=rgb2gray(image);

%convert it to double
image_double=im2double(image_gray);

%Apply histogram equalization
histo_equalized_image=histeq(image_double);

%Apply the svd decomposition
[U S V] = svd(histo_equalized_image);

%calculate the derived image
P=U * power(S, 5/4) * V';


%Linearly combine both images
    J=(single(histo_equalized_image) + (0.25 * P)) / (1 + 0.25);

    %Apply DWT
    [c,s]=wavedec2(J,2,'haar');
    a1=appcoef2(c,s,'haar',1); % I need only the LL bloc.
  1. 您需要定义“有用”或“重要”信息的含义。 然后再执行一些步骤。

  2. 直方图均衡是全局变换,它在不同的图像上给出不同的结果。 您可以进行实验-对图像进行histeq,这会从中受益。 然后制作原始图像的两个副本,并画一个黑色正方形(占图像面积的30%),然后画一个白色正方形。 然后应用histeq并比较结果。

低频成分包含有用的信息,不重要的信息也会丢失在该成分中。

真? 边缘和形状-(至少对我来说很重要)在高频中。 同样,我们需要定义“有用的”信息。

我看不到理论背景为何以及您的方法会如何工作。 您能否解释一下,为什么选择这种方法?

附注:我不确定本文是否与您相关,但建议使用Bansal等人的文章《 Where Edges Matter? 》。 V. Vonikakis和I. Andreadis的“多尺度图像对比度增强”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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