扫描图像中的任何对焦点
Scan images for any in focus points
下午好,
我希望有人能给我指明正确的方向,我即将开始制作 X/Y/Z 照片装备,它会在 Z 轴上堆叠图像以形成一个 'in focus' 图片。
我有两个选择,第一个是制作视频并使用 FFMPEG 之类的工具从中拉出帧,或者第二个选择是拍摄多张图像然后将它们拼接成一张图像。
我倾向于第一个选项(例如视频),因为虽然质量较低,但每个视野都相当小,所以最后会变成质量更高的全景图。
我的问题是虽然围绕处理 FFMPEG 图像堆栈,焦点堆叠的工作方式是它拉动图像的焦点部分,其他图像的焦点部分形成一个图像,问题虽然在视频中可能有些部分根本没有聚焦,但我想丢弃这些部分,我的想法是,如果我最终得到一组要扫描的文件名,我可以扫描它们并以编程方式选择聚焦的部分, 但是我不确定人们如何确定焦点,或者焦点水平甚至是理想的!
长话短说,有没有人有关于如何根据数值确定彩色图像(例如视频帧)中的焦点级别的任何 vb.net / .net 提示,这然后我可以用来确定焦点级别?
非常感谢!
对于那些感兴趣的人,我使用一种称为 Sobel 边缘检测的技术和一个称为 AForge.Net 的库解决了这个问题,基本上,您为库提供一个位图,它遍历图像,将其转换为灰度并尝试确定边缘。
完成此操作后,我查看了边缘的标准偏差,如果您绘制一张图像,从失焦到最佳聚焦,然后再次失焦,它有点像钟形曲线。找到最大值(在我的例子中)等于图像的最 'in-focus' 部分,而如果你取曲线的百分比,它可以捕获图像的更多 'contains focus' 部分。
希望这对其他人有帮助:)。
下午好,
我希望有人能给我指明正确的方向,我即将开始制作 X/Y/Z 照片装备,它会在 Z 轴上堆叠图像以形成一个 'in focus' 图片。
我有两个选择,第一个是制作视频并使用 FFMPEG 之类的工具从中拉出帧,或者第二个选择是拍摄多张图像然后将它们拼接成一张图像。
我倾向于第一个选项(例如视频),因为虽然质量较低,但每个视野都相当小,所以最后会变成质量更高的全景图。
我的问题是虽然围绕处理 FFMPEG 图像堆栈,焦点堆叠的工作方式是它拉动图像的焦点部分,其他图像的焦点部分形成一个图像,问题虽然在视频中可能有些部分根本没有聚焦,但我想丢弃这些部分,我的想法是,如果我最终得到一组要扫描的文件名,我可以扫描它们并以编程方式选择聚焦的部分, 但是我不确定人们如何确定焦点,或者焦点水平甚至是理想的!
长话短说,有没有人有关于如何根据数值确定彩色图像(例如视频帧)中的焦点级别的任何 vb.net / .net 提示,这然后我可以用来确定焦点级别?
非常感谢!
对于那些感兴趣的人,我使用一种称为 Sobel 边缘检测的技术和一个称为 AForge.Net 的库解决了这个问题,基本上,您为库提供一个位图,它遍历图像,将其转换为灰度并尝试确定边缘。
完成此操作后,我查看了边缘的标准偏差,如果您绘制一张图像,从失焦到最佳聚焦,然后再次失焦,它有点像钟形曲线。找到最大值(在我的例子中)等于图像的最 'in-focus' 部分,而如果你取曲线的百分比,它可以捕获图像的更多 'contains focus' 部分。
希望这对其他人有帮助:)。