![]() |
[求助]这两个命令应该如何改成三维情况?多谢帮忙!
有一个问题:
a = 0.5447 0.5436 0.5431 0.5440 0.5461 0.8472 0.5466 0.5457 0.5461 0.5452 0.8442 0.5441 0.5452 0.8461 0.5464 0.5464 0.9495 0.5488 0.9476 0.5467 0.5469 0.5476 0.5484 0.5492 0.9510 0.5505 0.5493 0.5482 0.5480 0.9485 0.9493 0.5504 0.5481 0.5476 0.5466 0.5461 0.5464 0.5470 0.5474 0.5479 0.5450 0.5442 0.5436 0.5442 0.5457 0.5465 0.5462 0.5456 0.5445 0.5434 0.5432 0.5448 0.5473 0.5484 0.5474 0.5458 0.5448 0.5436 0.5434 0.5451 0.5479 0.5491 0.5479 0.5462 >> A=im2bw(a,0.8) %A中的数据,大于0.8的变1,小于0.8的变0; A = 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 >> [L,n1]=bwlabel(A) L = 0 0 0 0 0 3 0 0 0 0 2 0 0 3 0 0 1 0 2 0 0 0 0 0 1 0 0 0 0 4 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n1 = 4 若a是个n*n*n的三维矩阵,矩阵中的数据也是0到1之间的数据,如何实现上述的功能? A=im2bw(a,0.8) [L,n1]=bwlabel(A) 这两个命令应该如何改成三维情况? 谢谢 |
回复: [求助]这两个命令应该如何改成三维情况?多谢帮忙!
机器上暂时没有matlab,先给你曲线救国下:
a是nxnxn的,那么, [ d1, d2, d3 ] = size( a ); A = zeros( d1, d2, d3 ); L = zeros( d1, d2, d3 ); for i = 1 : d3 A( :, :, i ) = im2bw( a( :, :, i ), 0.8 ); [ L( :, :, i ), n(i) ] = bwlabel( A(:,:,i) ); end 如果不需要保存A,那么A不用做成3维的。 |
所有时间均为北京时间。现在的时间是 13:44。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.