Sim*_*mon 5 .net c# opencv focus emgucv
我有一个 C# (Emgu CV) 应用程序,可以在其中以不同焦距捕获同一场景的多个图像。现在我想创建一个类似于本文中描述的多焦点图像http://blog.patdavid.net/2013/01/focus-stacking-macro-photos-enfuse.html
\n\n我找不到任何使用 OpenCV 执行此操作的方法。\n我能够使用此代码为我的图像创建清晰度图
\n\nprivate Image<Gray, float> GetFocusMask(string imgfile)\n {\n var img = new Image<Bgra,byte>(imgfile);\n\n Image<Gray, byte> imgGray = img.Convert<Gray, byte>();\n Image<Gray, float> roughSharpness = imgGray.Laplace(5);\n roughSharpness = roughSharpness.Dilate(2);\n roughSharpness._SmoothGaussian(3);\n\n return roughSharpness;\n }\nRun Code Online (Sandbox Code Playgroud)\n\n不幸的是,我现在陷入困境,不知道如何使用此蒙版来计算原始焦点图像集合的单个景深图像。
\n我做了类似的事情,使用与拉普拉斯不同的度量,但想法是相同的:
使用拉普拉斯或类似方法计算每个深度的清晰度分数。
创建深度图。地图与图像大小相同。每个像素包含该点具有最大清晰度分数的深度索引。
使用中值滤波器(例如5x5)过滤深度索引。这将减少错误深度值的数量。
创建合并图像。在每个点,从深度图像中选择与该点的索引相对应的像素。
| 归档时间: |
|
| 查看次数: |
3376 次 |
| 最近记录: |