[已答复] 请教imfilter

[复制链接]
chenzcdyb 发表于 2010-8-21 09:47:04
我的目的: 我手上有一份可以work的图形处理算法,但是我需要转成RTL(芯片设计),做成芯片。
所以我需要将matlab转成C,这是第一步。
我使用的是  gx      =   imfilter(x,hx,'symmetric','same');

现在有两点:
1. 你们认为这个imfilter会复杂吗,我有看了一下matlab的sourece code,挺复杂的。或者这么讲吧,把这个imfilter的function转成C,你们觉得会不会要耗太多时间。
    若是你们做,要多久。
2. 如果#1不行,有没人能给个链接,我去研究一下imfilter做了什么事,或许我自己弄一个?
3. 也许有人已经做过了我想做的事?


对了,我对图像处理一窍不通,所以要是有人懂这个routine,愿意简单分享一下这个imfilter的功用,不胜感激。
(我已经看过matlab的help,但是不能理解)。
我的目的不是只是为了让程序跑起来,所以把matlab转成dll,然后C再调用之类的对我来讲没用。
我需要能用C表示,最后是要作为firmware摆在ARM里面。

谢谢大家支持

[ 本帖最后由 chenzcdyb 于 2010-8-21 09:52 编辑 ]

7 条回复


chenzcdyb 发表于 2010-8-22 22:03:20
自己顶个,望高手帮忙,不胜感激。

yanpu 发表于 2010-8-22 22:07:46
个人觉得还是看看理论方面的知识  在自己编程
混合编程毕竟还是有一定的局限

libralibra 发表于 2010-8-22 22:41:46
就源码来看,imfilter并不复杂,如果你的确需要用c处理,看看理论自己写代码应该不难的
读一下matlab的代码,看看处理过程是怎样的,你只需要它能跑起来,就不需要那么多种可变参数了
将一个写完整,能运行,其他的只是小修小补了

Larry_Lee 发表于 2012-1-17 15:20:01

注册帐号来回答问题,第一次来这里,懂了就给个分吧

A =

     2     2     2     2
     2   NaN     2     2
     2     2     2     2
     2     2     2     2

>> h=[0 1 0; 1 0 1; 0 1 0]

h =

     0     1     0
     1     0     1
     0     1     0

>> imfilter(A,h)

ans =

   NaN   NaN   NaN     4
   NaN   NaN   NaN     6
   NaN   NaN   NaN     6
     4     6     6     4

>> a

a =

     0     0     0     0     0     0
     0     2     2     2     2     0
     0     2   NaN     2     2     0
     0     2     2     2     2     0
     0     2     2     2     2     0
     0     0     0     0     0     0
刚才我也在找这个code的实现过程,但是没找到,国内外均没,因此我自己花了半小时看完,不是很多,在code中的主要实现是调用了imfilter_mex,而这个函数是个动态库文件,matlab对这部分是隐藏的,看不到的,因此我们推导一下就解决了。
注意看上述实现过程:
A为输入矩阵,h为filter,a是处理过程中的对A的扩展,
每个pixel进行滤波,采用卷积进行运算,我举的例子比较简单,如果你发现h不是正好的求取中心点的pixel值的话,就再进一步分析下,比如是否采用的是双线性插值的方法或者参考图像放大缩小的算法算出像素的位置。
这个发贴也不容易啊。
再例如一个sobel算子的话,实现过程如下:
1           2          1
0           0          0
-1      -2    -1
卷积公式如下:
Δ fy ( x ,y) = { f ( x - 1 ,y - 1) + 2 *f ( x ,y - 1) + f ( x + 1 ,y - 1)} -
{ f ( x - 1 ,y + 1) + 2 *f ( x ,y + 1) + f ( x + 1 ,y + 1)}
其中0*f(x,y)就省略了。
你如果在做这个或者想弄明白的话,仔细分析一下吧,我思路就随便发挥的。但是内容就这些,耐心点你就搞明白了,搞算法需要耐心的哦。

Larry_Lee 发表于 2012-1-17 15:28:48

验证问题真烦

比如
ans(1,1)=NAN

ans(1,1)= a(1,1)*h(1,1)+a(1,2)*h(1,2)+a(1,3)*h(1,3)+a(2,1)*h(2,1).....
依次类推吧

验证问题很烦啊

lhxzui 发表于 2012-12-10 19:36:54
我也有同样的问题,谁能把imfilter转成C语言啊,求救

白素 发表于 2013-3-5 11:09:46
晕,看着看着突然蹦出个英文,这样很容易打乱人的思维的。楼主要么全英文,要么该用才用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表