如何在matlab中对图像进行去模糊?

时间:2011-05-20 16:46:57

标签: image matlab image-processing

我需要删除模糊此图片:

enter image description here

图片来源:http://www.flickr.com/photos/63036721@N02/5733034767/

任何想法?

4 个答案:

答案 0 :(得分:4)

虽然以前的答案是正确的,当他们说你无法找回丢失的信息时,你可以稍微调查并做一些猜测。

我以原始大小(75x75)下载了你的图像,你可以在这里看到一个缩放的片段(一个小方块=一个像素)

enter image description here

这似乎是一个非常线性的灰度!让我们通过绘制中心行的强度来验证它。在Mathematica:

ListLinePlot[First /@ ImageData[i][[38]][[1 ;; 15]]]

enter image description here

因此,它实际上是线性的,从零开始到一个结束。

所以你可能会猜到它最初是一个B& W图像,线性模糊。

最简单的去模糊方法(并不总是给出好的结果,但在你的情况下足够)是用0.5阈值对图像进行二值化。像这样:

enter image description here

这是一种可能的方式。请记住,我们在这里猜测很多!

HTH!

答案 1 :(得分:3)

您通常无法检索缺失的信息。

如果您知道它的图像是什么,在这种情况下是高斯或艾里轮廓,那么它可能是点源的失焦图像 - 您可以确定该点的特征。

另一种技术是尝试确定模糊的特征 - 特别是如果你有许多图像形成相同的模糊系统。然后迭代地创建一个可能的源图像,通过该卷积对其进行模糊,并将其与模糊图像进行比较 这是用于制作射电天文源图(图像)的一般技术,用于有缺陷的哈勃太空望远镜图像

答案 2 :(得分:1)

使用图像时,最常见的事情之一是使用卷积滤镜。有一个“锐化”过滤器可以尽力去除图像中的模糊。可以在此处找到锐化滤镜的示例: http://www.panoramafactory.com/sharpness/sharpness.html

像matlab这样的程序使卷积变得非常简单:conv2(A,B) 最好的照片编辑有一些名称或其他名称的过滤器(通常锐化)。

但请记住,过滤器只能做很多事情。理论上,模糊过程已经丢失了实际信息,无法完美地重建初始图像(无论电视会让您相信什么)。

在这种情况下,您似乎只有一个非常简单的图像,只有黑色和白色。了解您的图像,您总是可以使用简单的阈值。将高于某个阈值的所有内容设置为白色,将所有内容设置为黑色。大多数照片编辑软件再一次让这很容易。

答案 3 :(得分:1)

您无法检索缺失的信息,但在某些假设下,您可以锐化。

Try unsharp masking.