我一直试图找到一个代码片段来在C#中做一个非锐化的掩码,但是找不到一个有效或完整的掩码。我发现了一个PHP版本,但我想在C#中找到一个,然后才能完成从PHP转换的所有艰苦工作。
我只是个初学者。有人能指出我正确的方向吗?
答案 0 :(得分:1)
AForge.NET Framework包含许多图像处理过滤器并支持自己插入。您可以在自己的Image Processing Lab应用程序中查看它。
更新:AForge.NET有一个基于卷积的sharpen过滤器(参见convolution filters),但没有提到一个非锐化的掩码过滤器本身。然后,您可以使用高斯模糊滤镜并从原始图像中减去结果,这基本上是非锐化蒙版滤镜的作用。或者基本的锐化可能足以满足您的需求。
更新:进一步看,AForge.NET确实有一个Gaussian sharpen,它似乎是一个非锐化掩码过滤器的实现,你可以控制一些参数。
答案 1 :(得分:1)
您是否愿意使用FFT?如果需要,可以转换,移除或强调高频率,转换变换,重新组合。由于FFT库比比皆是,因此几乎没有任何许可问题。
或者,您可以手工制作蒙版,根据需要改变大小和常数,然后将它们与图像像素进行卷积(嵌套'for'循环......)。
这是一个3x3x1掩码作为文本文件,其值在值之前给出:
// 3x3x1
// x size
3
// y size
3
// z size
1
// z = 0
2 3 2
3 5 3
2 3 2
//结束
这可以扩展到3个维度(因此给出z大小)。
答案 2 :(得分:1)
最新版本的开源C#Image Library有一个非锐化的遮罩滤镜(以及高斯模糊,亮度/对比度等),非常易于使用。
答案 3 :(得分:0)
查看此博客条目是否可以帮助您找到正确的方向:
http://anand-vinay.blogspot.com/2008/01/unsharp-mask-in-cnet.html
编辑:好的,博客条目不起作用,抱歉链接不好。
我找到了一个完整的应用程序,您可以使用我认为您正在寻找的代码下载源代码。
答案 4 :(得分:0)
Christian Graus的Image Processing for Dummies with C# part 2包含源代码,并解释了如何解开(假设你的意思是平滑)。整个系列是使用GDI(在C#中)进行图像处理的绝佳介绍,不需要外部库。