# Detect same point spread functions between two microscopy images

So say I'm given two image datasets (Image 1 and 2 - attached). I want to be able to find the point spread functions that are the same between the two images (so parameterize the PSFs based on some features) and be able to say that PSF 1 in image1 is PSF 2 in image 2. Also note that intensities of these PSFs (so the height of gaussian might be different). So this is a way of correlating the PSFs in two images but in a more probabilistic and self-supervised method. Is there a decent algorithm out there that does this? And if not, does any one have any ideas as to how I can do this?

In this case, the PSFs are very clean (perfectly round/gaussian) and there's just gaussian noise. In actuality, these images will be very messy with imperfect gaussians and lots of background noise. So along those lines, if these images were noisy with messy PSFs then how would I go about doing the above method. Any help would be greatly appreciated. Thank you. I have tried doing ssim (structural similarity index) but that tends to correlate the noise very well. I have also tried cross-correlation but that doesn't tell me where the matching PSFs are located. My idea is that we first somehow identify each PSF from image1 and then match it with each PSF in image2. However, how these PSFs can be matched based on multiple features is a bit confusing to me.

• By naked eye, the dots are more similar among the image 1 than between images 1 and 2. In addition, all there is to see is the radius and possibly the height (?), which is really little information. So I believe that this task is just impossible.
– user67664
Jun 14 at 16:33
• An effective way to address this kind of problem is by means of template matching using grayscale correlation, but as I just said IMO this is hopeless.
– user67664
Jun 14 at 16:36
• So in this case the image is normalized. And maybe this image is not a good example. Considering two gaussians, can we do similarity matching between them? Jun 14 at 16:47
• Nothing prevents you from doing it, but I gave you my founded opinion.
– user67664
Jun 14 at 18:50

\begin{align*} I_1(n,m) = O_1(n,m) \star P_1(n,m)\\ I_2(n,m) = O_2(n,m) \star P_2(n,m)\\ \end{align*}
where $$\star$$ represents convolution, $$O_i, i=1,2$$ is the original, undisturbed image, $$P_i, i = 1,2$$ is the point spread function generating each image.
Unless you can isolate some feature in the image so that we really get \begin{align*} I_1(n,m) &= O_{\tt common}(n,m) \star P_1(n,m)\\ I_2(n,m) &= O_{\tt common}(n,m) \star P_2(n,m)\\ \end{align*} where $$O_{\tt common}$$ is some common feature between $$O_1$$ and $$O_2$$.
Then you might be able to form the deconvolution: \begin{align*} D_1(n,m) &= O_{\tt common}(n,m) \star P_1(n,m) \star \hat{P}^{-1}(n,m)\\ D_2(n,m) &= O_{\tt common}(n,m) \star P_2(n,m) \star \hat{P}^{-1}(n,m)\\ \end{align*} where $$\hat{P}^{-1}$$ is the "deconvolution kernel". Then, provided the norm of the difference between the results $$\parallel D_1 - D_2 \parallel$$ is less than some threshold, you might be able to say something about how similar $$P_1$$ and $$P_2$$ are.