马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
是一个求图像中每个小颗粒的面积和周长:<BR>I = imread('jwutest.bmp');<BR>level = graythresh(I); %求出阀值参数<BR>BW = im2bw(I,level); % 用阀值参数 转化为二值图像 <BR>[L,N] = bwlabel(BW,4); % 标注二进制图像中已连接的部分<BR>% 这里用4连接 , 函数返回与输入图像大小相同的数据矩阵,从而区分图 % 像 的不同物体 ,L为 数据矩阵,N为颗粒的个数 <BR>for i = 1 : N <BR>[r,c] = 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秒,太慢了。可以有方法改进一下速度吗? |