太阳能文件夹中的热点检测

时间:2017-06-07 12:26:33

标签: matlab opencv image-processing

如何检测太阳能光伏文件夹中的热点。我知道那些点会比正常点亮。

输入:热图像。输入图像如下:

input image

如何使用IP首先找到热点并返回它的坐标来解决这个问题?

现在我需要找到此图像中包围的亮点(热点)的坐标。后来我也需要预测潜在的热点。

3 个答案:

答案 0 :(得分:1)

由于您使用 OpenCV Matlab 标记了您的问题,您似乎不太确定要使用哪种软件,所以我想你是不确定。

所以,您可以考虑使用 Imagemagick ,这是免费的并安装在大多数Linux发行版上,可用于macOS(如果必须,还可以使用Windows),Python,Perl,PHP,.NET,Java ,Ruby,C,C ++绑定可用 - 请参阅ImageMagick website

有一个来自Fred Weinhaus(@ fmw42)优秀网站maxima的脚本,该网站可以满足您的需求 - here。它使用并需要 ImageMagick 。我相信它是免费的非商业用途,但请尊重许可。

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

./maxima -n 5 -r 20 -c red solar.jpg result.png

<强>输出

max=1 342,187 gray=61045.7,238,93.1498%
max=2 354,228 gray=60383,235,92.138%
max=3 233,264 gray=57768,225,88.149%
max=4 196,106 gray=56295,219,85.9%

-r 20忽略半径20像素范围内的所有峰值,-n 5表示你想要找到5个峰值。在输出中,您可以看到峰的坐标及其亮度,并在此处用红色标记:

enter image description here

它似乎找到了一个比你要求的更低的峰值 - 可能是一个小虫: - )

答案 1 :(得分:1)

使用ImageMagick的另一种方法是将图像阈值设置为黑/白以隔离斑点并使用连接的组件标记来定位质心或边界框。例如,由于斑点是白色的,我可以简单地对图像进行阈值处理。 (但如果斑点是一些独特的颜色,您可以将该颜色转换为白色,其余部分转换为黑色):

convert Bm18f.jpg -auto-level -threshold 89% -type bilevel tmp2.png

enter image description here

convert tmp.png -define connected-components:verbose=true -define connected-components:area-threshold=5 -connected-components 8 null:

Objects (id: bounding-box centroid area mean-color):
  0: 593x473+0+0 296.0,236.0 280330 gray(0)
  1: 15x15+341+177 346.9,184.8 112 gray(255)
  2: 8x7+351+224 354.9,227.2 47 gray(255)

灰色(0)是黑色背景,灰色(255)是两个白色区域。列出了边界框和质心以及每个区域的区域。

请注意,我丢弃了区域小于5像素的区域,以移除较小区域中心的1像素黑点(如果设置得稍低,则移除阈值中的任何其他小的外部点。

答案 2 :(得分:1)

在使用我的脚本maxima的ImageMagick中,作为Mark的解决方案的后续内容并在修复索引错误(他在上面指出)之后,这里是一个设置阈值并将数字设置为较大值的版本(10 )。但它停在门槛上,找到了两个热点。

maxima -n 10 -t 90 -r 17 -c red solar.jpg solar_maxima.png

enter image description here