图像锐化方法

8
我正在做一个项目,将使用遗传算法来优化一组过滤器和参数,以用于图像锐化。我目前正在阅读Gonzalez的书籍“数字图像处理”,并研究任何与图像处理相关的东西,因为我对这个领域还比较新。
我正在寻找一个锐化方法列表...例如非锐化掩蔽、高通滤波器、拉普拉斯锐化等。如果您熟悉图像处理,是否有任何过滤器可以推荐用于图像锐化(包含“调整”的参数)?
谢谢!
2个回答

8
一般情况下,锐化会增加像素之间的对比度。天真的实现通常会在边缘产生"晕影",这可能会在感知上不太吸引人。诸如双边滤波器之类的技术试图解决这个问题。近年来出现了一些有趣的技术,其中Andrew Adams在http://www.stanford.edu/class/cs448f/lectures/2.1/Sharpening.pdf中对现代算法的概念进行了很好的总结。

请查看最后一部分以获取一些方法:

双边和三边滤波器

用于多尺度色调和细节处理的边缘保持分解

盲反卷积(没有已知卷积核的卷积)

当然,如果你有多张图像或任何关于正在处理的图像的信息(例如主题的其他清晰图像),你通常可以使用基于图像先验的各种学习技术取得更好的效果。

用于处理图像并尝试一些锐化技术的良好通用框架是OpenCV,其中存在用于Python的绑定。


感谢您的建议,正是我正在寻找的。至于遗传算法,由于除了输入图像以外没有其他信息,我想对图像应用人工模糊,然后锐化该图像(使用原始图像作为“理想”适应函数)。然后,过滤器集将应用于原始图像本身。当然,人工模糊的类型将决定图像如何被锐化。您认为这种方法是否有效? - varuas
可能不是直接的,这取决于您的图像。听起来您尝试的更多与超分辨率有关,而不是锐化。请查看自然图像先验知识以及与其相关的各种单幅图像超分辨率技术。也许可以从Glasner等人的“来自单个图像的超分辨率”开始,并查看更多参考文献,特别是Freeman等人在00年代早期发表的开创性论文。 - dvj

3
一个简单、非常快速和通常有效的算法的想法(不知道其他人是否已经想到了)是这样的:
- N 代表锐化增加。值为0将不改变图像,值为1可能会使图像的锐度增加约一倍,而值为-1则会使图像非常模糊和奇怪。 - 现在,对于图像中每个像素的每个颜色,请执行以下操作:
- 将当前值 V、当前颜色 C、当前列 X 和当前行 Y 调用。 - 将 X 设置为相邻像素之间最大的差异,如下所示:
M = biggestAbsoluteValueBetween(
X - (X - 1) 列的第 Y 行的第 C 种颜色,
X - (X + 1) 列的第 Y 行的第 C 种颜色,
X - X 列的第 Y - 1 行的第 C 种颜色,
X - X 列的第 Y + 1 行的第 C 种颜色
)
- 最后,将 M 的差异乘以 N 然后添加到新锐化图像中当前像素的当前颜色的值中,如下所示:
Vnew = Vold + M * N
补充说明:
希望我成功地以任何编程语言都能理解的方式进行了沟通。如果您有建议或改善此答案的易读性的方法,请随时提出。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接