24小时热门版块排行榜    

查看: 1213  |  回复: 11
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

xmcrobbie

银虫 (小有名气)

[求助] 那个滤波的效果好?已有2人参与

最近被gabor整死,我自己写个卷积用c语言实现了0角度就是水平方向的gabor滤波器,同样的参数,再用matlab语言写了一遍,滤波的效果结果就是不一样?大家帮忙看看那个效果好,二者主要的差别就是,在matlab的卷积函数我是调用conv2,而c语言的卷积函数是我自己写的。。我一直觉得用c语言写那个效果好,可是用c语言写的程序,最后去求纹理,对图像进行分类,就是比不上用matlab写的。难道是卷积的问题??? 第一张图片是C语言实现的,第二张图片是用matlab实现的
那个滤波的效果好?
cJPG


那个滤波的效果好?-1
matlab.JPG
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kaixinla168

银虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
楼主能把程序贴出来看看吗?
3楼2014-01-24 09:18:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 12 个回答

icecho

木虫 (正式写手)

为什么滤出来,两张反着呢?
不会是输入也不是同一张?
2楼2014-01-24 08:01:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xmcrobbie

银虫 (小有名气)

引用回帖:
2楼: Originally posted by icecho at 2014-01-24 08:01:18
为什么滤出来,两张反着呢?
不会是输入也不是同一张?

反着是我没处理好宽度排列的问题。这是水平方向的虑波啊,所以明显用c好!

[ 发自小木虫客户端 ]
4楼2014-01-24 10:36:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xmcrobbie

银虫 (小有名气)

引用回帖:
3楼: Originally posted by kaixinla168 at 2014-01-24 09:18:06
楼主能把程序贴出来看看吗?

for (i = 0; i < height + 8; i++)
                {
                    for ( j = 0; j < width +  8; j++)
                    {
                        for (int k = -8; k < 8; k++)
                        {

                            double temp = 0.0;
                            for (int l = -8; l < 8; l++)
                            {
                                                       
                                                               
                                                                int x1 = i + k;
                                                                int y1 = j + l;

                                                                int x2 =  k + 8
                                                                int y2 =  l + 8;

                                                                if ( x1  < 0  )
                                                                         x1 = 0;
                                                                if ( y1 < 0 )
                                                                         y1 = 0;
                                                                if ( x1 >=height)
                                                                        x1 = height-1;
                                                                if ( y1 >=width)
                                                                        y1 = width -1;
                                                                 else
                                                                        temp = gray[x1][y1];

                                                       
                                                                result1[j] += GReal_On[x2][y2] * temp;
                                                                result2[j] += GImg_On[x2][y2] * temp;

                                                               
                                
                                
                            } //end for l

                        } // end for k
                                       
                    } // end for j
                } // end for i
5楼2014-01-24 10:46:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见