3

我一直在尝试找到一个代码片段来在 C# 中做一个非锐化掩码,但找不到一个有效或完整的。我找到了一个 PHP 版本,但我想在 C# 中找到一个,然后再进行从 PHP 转换的所有艰苦工作。

我只是一个初学者。谁能指出我正确的方向?

4

5 回答 5

1

AForge.NET Framework包括许多图像处理过滤器并支持插入您自己的过滤器。您可以在他们自己的图像处理实验室应用程序中看到它的实际效果。


更新:AForge.NET 有一个基于卷积的锐化过滤器(请参阅卷积过滤器),但没有提及不锐化掩码过滤器本身。再说一遍,您可以使用高斯模糊滤镜并从原始图像中减去结果,这基本上就是 unsharp mask 滤镜的作用。或者,基本的锐化可能足以满足您的需求。


更新:进一步看,AForge.NET 确实有一个高斯锐化,这似乎是一个不锐化蒙版过滤器的实现,你可以控制一些参数。

于 2009-05-21T14:22:40.367 回答
1

你愿意使用 FFT 吗?变换、删除或强调高频以品味、反转变换、如果需要的话与原始重新组合?那里几乎没有任何许可问题,因为 FFT 库比比皆是。

或者,您可以手动制作蒙版,根据需要改变大小和常数,然后将它们与图像像素进行卷积(嵌套的“for”循环......)。

这是一个 3x3x1 掩码作为文本文件,其尺寸在值之前给出:

//3x3x1

// x 大小

3

// y 大小

3

//z大小

1

//z = 0

2 3 2

3 5 3

2 3 2

//结尾

这可以扩展到 3 个维度(因此给出了 z 大小)。

于 2009-05-21T16:38:22.810 回答
1

最新版本的开源 C# 图像库具有不锐化蒙版滤镜(以及高斯模糊、亮度/对比度等),并且非常易于使用。

您将在此处找到如何应用非锐化蒙版的教程

于 2010-01-20T21:27:46.440 回答
0

看看这个博客条目是否能帮助你朝着正确的方向前进:

http://anand-vinay.blogspot.com/2008/01/unsharp-mask-in-cnet.html

编辑:好的,该博客条目不起作用,抱歉链接错误。

我确实找到了一个完整的应用程序,您可以使用源代码下载它,其中包含我认为您正在寻找的代码。

http://www.ctyeung.com/Csharp/index.html

于 2009-05-21T13:03:29.827 回答
0

Christian Graus 的C# 傻瓜图像处理第 2 部分包含源代码,以及如何进行不锐化的说明(假设您的意思是平滑)。整个系列很好地介绍了使用 GDI(在 C# 中)进行图像处理,并且不需要外部库。

于 2009-05-21T14:31:35.280 回答