Consider what I call a "weighted" convolution of a two-dimensional signal (image) with itself:

$f({\bf r}) = \int d {\bf r}' \, g({\bf r}') s({\bf r},{\bf r}') g({\bf r}-{\bf r}')$

where $s$ is a weighting function, with $s({\bf r},{\bf r}') = s({\bf r}+{\bf r}',-{\bf r}')$. My ultimate goal is to perform edge detection on $g$, i.e., find discontinuities in $g$, from knowing only $f$.

If $s=1$, I believe I can obtain $g$ from $f$ using the convolution theorem and a deconvolution scheme, but with a general $0<s<1$ this is no longer possible.


  1. Does the integral I write above have a formal name?
  2. Is there something similar to the convolution theorem for such a "weighted" convolution?
  3. Is there any other result that may help me perform edge detection on $g$ from knowing only $f$?
  • $\begingroup$ Your question has beeen answered. Do not hesitate to vote for the useful ones and accept the most suitable $\endgroup$ – Laurent Duval Feb 9 '17 at 17:32

1) The terms autoconvolution or selfconvolution can be found in the literature, without the kernel $s$. So you would probably have a weighed, kernel or windowed self-convolution. However, i foresee two potential caveats on your formulation. First, i do not understand why you require a two-dimensional periodic signal (and nothing on the kernel $s$?). This could result in infinite values of your integrals. Second, don't you assume some kind of symmetry in $s(r,r′)$?

2) Suppose you can solve your system with $s=1$, then with appropriate symmetry on $s$ you may be able to factorize $s$ and slit it over $g(r')$ and $g(r-r')$. Unfortunately the convolution theorem is likely to give you a family of solutions $g$ knowing $f$ only.

3) You may find useful to explore a multiscale form of your weighted self-correlation operator.

Affine invariant pattern recognition using Multiscale Autoconvolution Rahtu E., Salo M., Heikkilä J. IEEE Trans Pattern Anal Mach Intell. 2005 Jun;27(6):908-18.

An iterative deautoconvolution algorithm for nonnegative functions Kerkil Choi and Aaron D Lanterman 2005 Inverse Problems 21 981

Autoconvolution and panorama: Augmenting second-order signal analysis Douglas, S.C. and Mandic, D.P., 2014 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)

  • $\begingroup$ Thanks. Actually, periodicity is not necessary. There is indeed some symmetry in $s$. I've updated the question accordingly. $\endgroup$ – delete000 Aug 22 '15 at 12:42
  • 1
    $\begingroup$ I have added some references I went through when thinking about your question. None of then have kernels, yet could help you derive properties of your binear foorm. $\endgroup$ – Laurent Duval Aug 23 '15 at 8:04
  • $\begingroup$ These are useful, especially the second one. I will test their deautoconvolution / deautocorrelation algorithm on $f$ and see what comes out. Even though it doesn't make sense formally, the result may be sufficient for my purposes. $\endgroup$ – delete000 Aug 24 '15 at 8:55

It would generally be of advantage to write your weighting function as a function $\bar{s}$ of $\mathbf{r'}$ and $\mathbf{r}-\mathbf{r'}$. That will reveal the properties and symmetries in the coordinates the convolution is symmetric in.

The next step towards a simplification is to expand your weights into a tensorial product series: $$\bar{s}(\mathbf{r'},\mathbf{r}-\mathbf{r'})=\sum_{n=0}^\infty u_n(\mathbf{r'})\times v_n(\mathbf{r}-\mathbf{r'})$$

If this series has only a finite number of terms then you're done. Each term will contribute to a single convolution integral with weighting factors for the two factor functions if you use the linearity of the integral to split the series up.

If the series does requires infinitely many (or simply too many to handle) terms, then you should try to sort the terms by decreasing contribution and introduce a cutoff that allows you to treat it as a finite series. That is not possible in all cases, but for your discrete space there won't be problems.

You can use symmetry properties of your kernel to simplify the series expansion. This is not too hard to work out, so I won't go into the details.

Good luck!


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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