首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AForge - Butterworth低通滤波器-如何从复杂的[,]数组创建ComplexImage?

AForge - Butterworth低通滤波器-如何从复杂的[,]数组创建ComplexImage?
EN

Stack Overflow用户
提问于 2014-12-24 00:25:01
回答 1查看 674关注 0票数 0

我试图在C#中使用AForge实现巴特沃斯低通滤波器。我创建了以下函数:

代码语言:javascript
复制
    public static ComplexImage ButterworthLP(double freq, double power, ComplexImage inImage)
    {
        int ydim = inImage.Height;
        int xdim = inImage.Width;
        Complex[,] imgData = inImage.Data;

        for(int v = 0; v<ydim; ++v)
        {
            for(int u = 0; u<xdim; ++u)
            {
                int dv = (v < ydim / 2) ? v : v - ydim;
                int du = (u < xdim / 2) ? u : u - xdim;
                double dist = (double)(dv * dv + du * du);

                // Apply filter
                double filter = 1 / (1 + Math.Pow(dist / (freq * freq), power));
                imgData[v, u].Re *= filter;
                imgData[v, u].Im *= filter;
            }
        }
        ComplexImage cImg = new ComplexImage(xdim,ydim);
        return cImg;
    }

ComplexImage.Data属性是只读的;因此,目前我正在获取数据并对其进行修改。现在我想使用这个修改过的复杂数据数组创建一个ComplexImage,但我还没有弄清楚如何这样做。如果有另一种修改输入图像数据的方法,我也愿意接受建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-24 00:49:29

从文件中

构造函数是受保护的,这使得无法直接实例化该类。要创建这个类的实例,应该使用FromBitmap(位图)或FromBitmap(BitmapData)方法。

正如您所发现的,这些数据是只读的。

所以基本上,我认为您需要下载源代码,并自定义它以添加过滤器

此外,您可以尝试他们的讨论论坛,这可能是更直接的帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27629958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档