0

I'm trying to develop a way to count the number of bright spots in an image. The spots should be gaussian point sources, but there is a lot of noise. There are probably on the order of 10-20 actual point sources in this image. My first though was to use a gaussian convolution with sigma = 15, which seems to do a good job.

First, is there a better way to isolate these bright spots?

Second, how can I 'detect' the bright spots, i.e. count them? I haven't had any luck with circular hough transforms from opencv.

Edit: Here is the original without gridlines, here is the convolved image without gridlines.

Spuds
  • 148
  • 1
  • 2
  • 13
  • Can you provide the image without the gridlines please? And also a second, marked up image with the bright spots you expect to find clearly circled? Thank you. – Mark Setchell Mar 17 '19 at 20:01
  • @MarkSetchell, I added the images without gridlines. As for the expected sources, I actually don't know which they are. I am more concerned about detecting & counting them for now. – Spuds Mar 17 '19 at 21:37
  • Here's a related question with another opencv function to check out: https://stackoverflow.com/questions/8076889/how-to-use-opencv-simpleblobdetector – NateTheGrate Mar 18 '19 at 11:32
  • Convert to grayscale and threshold the image to extract the bright spots. Then use SimpleBlobDetection, which should give you count of the white regions. You can even use it to remove those that have wrong color if you keep color or are too small – fmw42 Mar 21 '19 at 01:11

1 Answers1

0

I am working with thermal infrared images which subject to quantity of noises.

I found that low rank based approaches such as approaches based on Singular Value Decomposition (SVD) or Weighted Nuclear Norm Metric (WNNM) give very efficient result in terms of reducing the noise while preserving the structure of the information. Their main drawback is the fact they are quite slow to compute (several minutes per image) Here is some litterature:

https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=7067415

https://arxiv.org/abs/1705.09912

The second paper has some MatLab code available, there is quite a lot of files but the translation to python is should not that complex.

OpenCV implement as well (and it is available in python) a very efficient algorithm on the Non-Local Means algorithm: https://docs.opencv.org/master/d5/d69/tutorial_py_non_local_means.html

John_Sharp1318
  • 939
  • 8
  • 19