matlab测量裂缝宽度问题(图像处理.)00000111110001110----①00001111111011111----②以上是图像二值化后的矩阵(0代表黑色,1代表白色)用matlab中什么算法分别统计①中的两块1的个数,即,第一块中1个

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/15 00:04:41
matlab测量裂缝宽度问题(图像处理.)00000111110001110----①00001111111011111----②以上是图像二值化后的矩阵(0代表黑色,1代表白色)用matlab中什么算法分别统计①中的两块1的个数,即,第一块中1个
xVmOP+KH*Ps~Ȳ3qDe`Sec)oe_io%h> pys^ ~ËW]֒j!JrIT}S{mU9q~E]p:!d4G$}W5 iNm*9<ײPƅ555m % jDP]$ՌrơZ@!' w%7nR.#)q qw)`#4zA MQ`$: zs:8YjgW9ñfN^Oθ{vlDco(d| ^2ʎW2\Bҵ rzPxin! xH_6%ކl <0R#y`kfn',ټ]E:*hf.8+ZK=EA-T?ėWzoS _i4~`c4AO0'|3l`_sh}7%ymwh^%ZP^tnvkca1Ʌ6x'Cm5w}~ #ܐ$#9EXNJW7eZO`BE㆒z? x S (vRPM,< jp;mxAǞҏA}YZ;kx~o  4 ;ݫo:;j /oˆh9CVp<_zL?X)~9*'~N%(cvZNx3g(?

matlab测量裂缝宽度问题(图像处理.)00000111110001110----①00001111111011111----②以上是图像二值化后的矩阵(0代表黑色,1代表白色)用matlab中什么算法分别统计①中的两块1的个数,即,第一块中1个
matlab测量裂缝宽度问题(图像处理.)
00000111110001110----①
00001111111011111----②
以上是图像二值化后的矩阵(0代表黑色,1代表白色)
用matlab中什么算法分别统计①中的两块1的个数,即,第一块中1个数=5,第二块中1个数=3?

matlab测量裂缝宽度问题(图像处理.)00000111110001110----①00001111111011111----②以上是图像二值化后的矩阵(0代表黑色,1代表白色)用matlab中什么算法分别统计①中的两块1的个数,即,第一块中1个

程序可以这样写:

a='00000111110001110';   %列出要判断的字符串.
b=strfind(a,'1');   %找出字符串a中字符等于1的位置.
c=diff(b);   %求b的差分.
d=find(c~=1);   %找出c中不等于1的位置.这也就是各块的分隔点.
e=[d(1) diff(d) length(b)-d(end)];   %利用分隔点d写出各块的长度.

e中的每一项,就是每一块中1的个数:

>> disp(e)
     5     3

最后一行e这样写的目的,是为了适应不止两块的情况,比如:

a='11000111110001101';

这个a是四块,同样运行这个程序,显示各个变量,会得到:

a =

11000111110001101


b =

     1     2     6     7     8     9    10    14    15    17


c =

     1     4     1     1     1     1     4     1     2


d =

     2     7     9


e =

     2     5     2     1

可见结果是正确的.


若有不解,欢迎追问.