Suppose that we have degraded an image with the following:

$$g(n_1,n_2) = f(n_1,n_2)^{v(n_1,n_2)}\text,$$

with $v(n_1,n_2)$ being random noise which is independent from image and we have these relations:

$$f(n_1,n_2) > 1 ,\quad v(n_1,n_2) > 0\text.$$

Suggest the method for removing noise with transforming $g$ and filter this image in the transformed domain.

My suggestion:

I think that I take natural logarithm from equation then I have:

$$\begin{align} \ln(g(n_1,n_2)) &= \ln\left(f(n_1,n_2)^{v(n_1,n_2)}\right)\\ &= v(n_1,n_2)\ln(f(n_1,n_2))\\ \implies\\ \frac{\ln(g(n_1,n_2))}{v(n_1,n_2)} &= \ln\left(f(n_1,n_2)\right)\\ \implies\\ \mathbb{e}^{\frac{\ln(g(n_1,n_2))}{v(n_1,n_2)}} &= f(n_1,n_2) \end{align}$$

But I don't have any idea how to estimate noise!

  • 1
    $\begingroup$ That's the thing about noise – you don't know it! So, while your approach certainly can be helpful, you first need to describe your noise better. Nothing in your equations say there's even remotely a chance you can recover $f$ – the power of $v$ might easily be tens of thousands of time higher than $f$, and all we know the two are uncorrelated. $\endgroup$ May 6, 2017 at 15:03
  • $\begingroup$ yeah,how we can understand that our image is recoverable or not? $\endgroup$
    – user112588
    May 6, 2017 at 16:13
  • $\begingroup$ that depends on your definition of "recover" and on what info you have about $f$ and $v$! If all you've got is "they are uncorrelated", then: not recoverable. But: this feels very much like you're forgetting to mention everything you know about $f$ and $v$! where does your exponential noise model come from? How do neighboring pixels in $v$ behave (autocorrelation properties)? Do you know something about statistical moments of noise and signal? and so much more you should ask yourself... $\endgroup$ May 6, 2017 at 16:20

1 Answer 1


The question is: "Suggest the method for removing noise with transforming $g$ and filter this image in the transformed domain." I believe it is more about "finding a method" than "doing the job practically".

Your first step is quite sound: remove the power complexity. But you are left with a product of a noise and a ($\log$) image. Most well known tools operate in a linear way. So use your hypotheses a little further: since $f>1$, its logarithm is positive. hence $v\log f$ is positive too. So you can turn the noise/signal product into a sum, by applying a logarithm again:

$$ \log \log g = \log v + \log \log f\,.$$

Now $ \log v$ can be considered as an additive noise to $\log \log f$. With this linearized model, you can try get insights on the nature of the noise, looking at flat regions of the image, checking histograms, etc. Once done, you can apply your best filter (adapted to the statistics of $ \log v$, yet unknown), and $\exp \cdot \exp$ the result. The function $v\to \exp \exp v$ grows very fast (from rechneronline.de):

exponential exponential function

So it relatively flattens low values with respect to higher values, with can result in contrast unbalance. This effect could be counterbalanced by intensity bounding, nonlinear mappings, etc., but more importantly by proper image restoration.

For your information, using linear filters in a $\log$ domain is an instance of homomorphic filtering, which your solution may belong too:

Homomorphic filtering is a generalized technique for signal and image processing, involving a nonlinear mapping to a different domain in which linear filter techniques are applied, followed by mapping back to the original domain

  • $\begingroup$ Thanks very much,I tested this approach in peppers.png in matlab,and I used adaptive median filter in order to remove this additive filter and then I $\exp\exp$ of the result but my final result is too dark but shadows of vegetables can be seen.how can I get better enhancement in your idea? $\endgroup$
    – user112588
    May 7, 2017 at 14:31
  • $\begingroup$ It may depend on your display. If like imagesc, too dark may be explained by a few "too bright" pixels, due to the double exponentiation that boosts high-valued pixels a lot. So you could bound the resulting image to the noisy version range. And as said by @ Marcus Müller it is difficult to know what filter to choose without much knowledge. What are you calling an "adaptive median"? $\endgroup$ May 7, 2017 at 15:42
  • $\begingroup$ It is in page 330 of Digital image processing by 'Rafael .C Gonzalez'.It is a spatial domain filter that compute median in for example [3 3] window,and check if it is not salt or pepper noise,then It will be replaced by pixel $i,j$. $\endgroup$
    – user112588
    May 7, 2017 at 15:56
  • $\begingroup$ Ok, terminology may vary on what people call adaptive median $\endgroup$ May 7, 2017 at 16:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.