获取图像中一组峰的强度和位置

时间:2016-06-25 03:00:54

标签: python image image-processing

我的照片显示如下:

Black background with white dots of different intensity

我想使用Python识别所有白色峰值,并用该图像中的一系列数字标记它们的位置。每一个高峰我都应该返回以下信息:

  • 数字标记
  • 峰值位置
  • 峰值的积分强度

我是使用python进行图像处理的新手。我不知道从哪里开始。

2 个答案:

答案 0 :(得分:0)

不确定您是否希望花费时间以复杂的方式使用一些昂贵的软件获取每一个细节,或者您是否只想开始使用非常简单的东西。无论如何,您可以考虑使用Imagemagick,它是免费的并安装在大多数Linux发行版上,可用于OSX和Windows - 使用Python,Perl,PHP,.NET,Java,Ruby,C,C ++绑定 - see here。< / p>

Fred Weinhaus的优秀网站maxima提供了一个脚本,它可以满足您的需求 - here。它使用并需要Imagemagick。

所以,只是在终端的shell中,你可以运行以下命令,假设你的图像名为peaks.gif

./maxima -r 20 -n 40 peaks.gif result.png

<强>输出

489,0 gray=65535,255,100%
143,99 gray=65535,236,92.549%
144,23 gray=65535,232,90.98%
273,95 gray=65535,232,90.98%
246,168 gray=65535,232,90.98%
118,99 gray=65535,231,90.588%
169,170 gray=65535,231,90.588%
194,100 gray=65535,230,90.196%
91,170 gray=65535,230,90.196%
63,245 gray=65535,230,90.196%
326,168 gray=65535,229,89.804%
352,97 gray=65535,228,89.412%
222,23 gray=65535,227,89.02%
300,96 gray=65535,227,89.02%
142,243 gray=65535,227,89.02%
272,243 gray=65535,227,89.02%
219,247 gray=65535,227,89.02%
274,22 gray=65535,226,88.627%
194,245 gray=65535,226,88.627%
300,23 gray=65535,225,88.235%
221,97 gray=65535,225,88.235%
297,244 gray=65535,225,88.235%
196,23 gray=65535,224,87.843%
194,318 gray=65535,224,87.843%
116,245 gray=65535,223,87.451%
403,170 gray=65535,219,85.882%
115,319 gray=65535,214,83.922%
350,244 gray=65535,208,81.569%
272,319 gray=65535,208,81.569%
378,96 gray=65535,197,77.255%
38,97 gray=65535,196,76.863%
220,319 gray=65535,195,76.471%
298,318 gray=65535,190,74.51%
64,98 gray=65535,189,74.118%
11,171 gray=65535,187,73.333%
117,23 gray=65535,179,70.196%
377,245 gray=65535,177,69.412%
353,22 gray=65535,169,66.275%
142,319 gray=65535,157,61.569%
350,319 gray=65535,144,56.471%

enter image description here

-r 20忽略距离任何其他半径20像素范围内的所有峰值,-n 40表示您要查找40个峰值。在输出中,您可以看到峰的坐标及其亮度。

答案 1 :(得分:0)

您可以使用scikit-ued。这就是我们在研究中所做的。 https://scikit-ued.readthedocs.io/en/master/tutorials/image.html