naicky 发表于 2005-9-19 10:31

一个matlab小程序,如何改进运行效率?

是一个求图像中每个小颗粒的面积和周长:<BR>I = imread('jwutest.bmp');<BR>level = graythresh(I); %求出阀值参数<BR>BW = im2bw(I,level); % 用阀值参数 转化为二值图像 <BR> = bwlabel(BW,4); % 标注二进制图像中已连接的部分<BR>% 这里用4连接 , 函数返回与输入图像大小相同的数据矩阵,从而区分图 % 像 的不同物体 ,L为 数据矩阵,N为颗粒的个数 <BR>for i = 1 : N <BR> = find(L == i); % 寻找矩阵中为i的 行和列的下标<BR>BWI = bwselect(L,c,r,4); % 选择出第i个颗粒<BR>a(i) = bwarea(BWI); % 计算第i个颗粒的 面积<BR>p= bwperim(BWI,4);<BR>b(i) = sum(sum(p)); % 计算第i个颗粒的 周长<BR>end <BR>这段代码一共花了 48秒,太慢了。可以有方法改进一下速度吗?

naicky 发表于 2005-9-19 14:48

这里没人在吗?<BR>上面的代码是逐个 求出一幅图像中 分散的小颗粒的面积和周长 ,请问还有其它效率更高的方法吗?

MVH 发表于 2005-9-20 11:16

回复:(naicky)一个matlab小程序,如何改进运行效率...

好像没有更好的办法了,个人水平有限帮不了你

zjliu 发表于 2005-9-21 08:40

楼主应该把图片贴一下,再做仔细说明.<BR>就目前的代码已经很难优化了.<BR>另外我觉得48s已经不算慢了
页: [1]
查看完整版本: 一个matlab小程序,如何改进运行效率?