matlab中处理图像如何加快处理速度?

matlab经常被用来处理图像,图像稍微大一点,经常会出现半天出不了结果的情况,对于一些新手来说,喜欢使用for循环对图像中每个像素进行处理,这是造成运行速度慢的主要原因之一,因此,总结几个可以避免使用for循环的函数:

(1)find函数,find函数返回矩阵元素所在的位置,位置是从第一列开始,从上到下,1,2,3,...,,然后是第二列,第三列

经常在图像中使用 如下: fseg(find(fsegmentgray<50& fsegmentgray>10))=1;利用一个矩阵对相同位置的另一个矩阵的元素作出判断或者赋值,可以避免使用循环;

(2)reshape函数,reshape函数重新调整举证的行数、列数、维数。

B = reshape(A,m,n)
返回一个m*n的矩阵B, B中元素是按列从A中得到的。如果A中元素个数没有m*n个, 则会引发错误。
a=[1 2 3;4 5 6;7 8 9;10 11 12];
       b=reshape(a,1,12);
       b =  1     4     7    10     2     5     8    11     3     6     9    12;
比如在图像处理中经常要将图像所有像素作为一列进行处理,直接使用newimage=reshape(image,m*n,1),m和n为原始图像的行列值。这样就可以不用循环一个个做了。
(3)sub2ind函数,ind2sub和sub2ind这对函数,是互逆的一对函数。ind2sub把数组或者矩阵的线性索引转化为相应的下标;sub2ind则正好相反,将下标转化为线性索引。这里的下标就是行列值,第几行第几列,线性索引就是按列开始算第几个。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值