Law*_*ceH 5 python opencv image-processing feature-detection
我目前正在做一个基于本文所述方法的项目: 从单个夜空图像中进行摄像机校准
作为计算机视觉的初学者,我不太明白如何实现本文中使用的方法来找到图像中所有亮点(灯具)的中心,特别是4.1节中的段落:
大小为15×15像素的周围斑块(图1(a))由给定因子(图1(c))上采样,并计算相应的梯度图(图1(d)).从最亮区域开始,降低灰度值阈值,直到能量函数最大化.能量函数定义为边界梯度的总和,并通过边界长度归一化(图1(e)).这导致图1(f)中所示的分段星形图像.分割确保加权重心算法[11]给出稳健的估计.
根据我的理解,我认为我可以对上采样图像执行拉普拉斯/索贝尔梯度函数,但之后我不太确定如何执行能量函数部分并生成分割图像.另外我还想了解如何使用openCV或其他python库实现加权重心算法来找到亮点的中心.
非常感谢,如果你们中的任何一个人可以为此提供一些灯光.
感谢致敬.
energy function
在此上下文中要带走的主要内容是用于最大化问题的任何函数。在这里,能量函数是梯度/导数/差异的总和(即在这种情况下“检测到的边界可能性”)。
由于您似乎具有非算法背景,我建议您阅读广度优先搜索(请记住,图像是一种非常特殊的图形类型,其中每条边都是一个像素,与相邻的边相连)、递归和洪水填充.
grad_img
= max_per_pixel(sobel_horiz,sobel_vert)。seed
明星的。region
其中包含seed
. 继续添加相邻像素region
(推荐广度优先遍历)。通过像素值的总和计算能量grad_img
,像素坐标为 的边界region
。如果能量高于前一次迭代的能量,则将新像素添加到region
。如果不是,则拒绝该像素。我的解决方案与他们的解决方案有点不同。他们实际上运行了一种填充算法,填充所有亮度像素 [阈值;255],计算能量函数,降低阈值,冲洗和重复,当它们最大化能量函数时停止。请注意,他们的算法效率非常低,因为与我的建议中的 1 个洪水填充相比,他们为每个预先检测到的恒星有效地进行了多达 255 个洪水填充,这在实践中可能是一个性能问题。
归档时间: |
|
查看次数: |
2123 次 |
最近记录: |