我目前正在进行一个基于本文所述方法的项目: Camera calibration from a single night sky image
作为一个计算机视觉的初学者,我不太明白如何实现本文中所用的方法来寻找图像中所有亮点(亮度)的中心,尤其是第4.1节:
The surrounding patch of size 15 × 15 pixels (Figure 1(a)), is upsampled by a given factor (Figure 1(c)) and the corresponding gradient map is calculated (Figure 1(d)). Starting from the brightest region, the gray value threshold is decreased, until an energy function is maximized. The energy function is defined as the sum of the border gradients and normalized by the border length (Figure 1(e)). This leads to a segmented star image shown in Figure 1(f). The segmentation ensures that the weighted centre of gravity algorithm [11] gives a robust estimation.
根据我的理解,我认为我可以对上采样图像做拉普拉斯/索贝尔梯度函数,但之后我不太确定如何执行能量函数部分并生成分割图像。另外,我还想了解如何使用openCV或其他python库实现加权重心算法来找到亮点的中心。在
非常感谢你们中的任何人能提供一些关于这个的灯。在
谢谢和问候。在
主要要去掉的是
energy function
在这个上下文中使用的是任何用于最大化问题的函数。在这里,能量函数是梯度/导数/差异的总和(即本例中的“检测到的边界可能性”)。在因为您似乎有非算法背景,我建议您阅读breadth-first search(记住图像是一种非常特殊的图形类型,其中每个边都是一个像素,与相邻的像素相连)、recursion和{a3}。在
grad_img
=max_/u像素(sobel_horiz,sobel_vert)。在seed
。在seed
组成的1x1region
开始。继续将相邻像素添加到region
(建议宽度优先遍历)。用grad_img
中像素值的和计算能量,像素坐标是region
的边界。如果能量高于上一次迭代的能量,则将新像素添加到region
。否则,像素被拒绝。在我的解决方案和他们的方案有点不同。他们实际上运行一个泛光填充算法,填充所有亮度像素[threshold;255],计算能量函数,降低阈值,冲洗并重复,当能量函数最大化时停止。请注意,他们的算法效率非常低,因为他们对每个预先探测到的恒星有效地进行了255次洪水填充,而我的建议中只有1次洪水填充,这在实践中可能是一个性能问题。在
相关问题 更多 >
编程相关推荐