使用OpenCV / Emgu CV进行聚焦堆叠

时间:2016-06-11 15:05:02

标签: c# .net opencv focus emgucv

我有一个C#(Emgu CV)应用程序,我可以在不同的焦距下捕获同一场景的多个图像。现在我想创建一个类似于本文http://blog.patdavid.net/2013/01/focus-stacking-macro-photos-enfuse.html

中描述的多焦点图像

我找不到任何使用OpenCV的方法。 我能够使用此代码为我的图像创建清晰度地图

[System.Web.Mvc.Route("search/{*segments}")]
public ActionResult Search(string segments, string query, string items)

不幸的是我现在卡住了,不知道如何使用这个蒙版来计算原始焦点图像集的单个景深图像。

1 个答案:

答案 0 :(得分:0)

我做了类似的事情,使用了与laplace不同的指标,但想法是一样的:

  1. 使用拉普拉斯或类似物计算每个深度的锐度分数。

  2. 创建深度贴图。地图与图像大小相同。每个像素包含深度的索引,在该点处具有最大的锐度分数。

  3. 使用中值滤波器(例如5x5)过滤深度指数。这将减少错误的深度值的数量。

  4. 创建合并图像。在每个点处,从与该点处的索引相对应的深度图像中选择像素。