永发信息网

请帮忙解释下这段matlab程序的意思,希望是一句一句的

答案:1  悬赏:20  手机版
解决时间 2021-08-13 10:57
请帮忙解释下这段matlab程序的意思,希望是一句一句的
[M,N]=size(I);
for k = 1:3
J = zeros(M,N);
for i = 1:M
for j = 1:N
temp = I(i,j);
s1 = 0; s2 = 0;
range = [k:-1:1];
for d = range
s1 = 2^(8-d) + s1; s2 = 2^(8-d+1);
if temp >= s1 & temp < s2;
J(i,j) = 255; break;
end
end
end
end
J = uint8(J);
figure; imshow(J);
end
end
最佳答案

代码后面多了个end.
[M,N]=size(I);%%得到I的行数和列数
for k = 1:3 %%最外层循环
J = zeros(M,N);%%建立和I一样大小的0矩阵,用以得到新的图像
for i = 1:M
for j = 1:N
temp = I(i,j);%%i,j为坐标,把I中横坐标为i,纵坐标为j处的像素值赋给temp
s1 = 0; s2 = 0;%%初始化s1和s2
range = [k:-1:1];%%当k=1时,range=1;当k=2时,range=[2,1];当k=3时,range=[3,2,1]
for d = range%%d和range取一样的值
s1 = 2^(8-d) + s1; s2 = 2^(8-d+1);%%s2没有进行累加,那么当d=1时,s2=256;当d=[2,1]时,第一次循环d=2,s2=128,第二次循环d=1,s2=256,该值覆盖128,所以最终s2=256;当d=[3,2,1]时,同样的道理,s2=256.s1进行累加,当d=1时,s1=128;当d=[2,1]时,第一次循环d=2,s1=64,第二次循环d=1,s1=128,所以最终s1=128+64=192;当d=[3,2,1]时,第一次循环d=3,s1=32,第二次循环d=2,s1=64,第三次循环d=1,s1=128,所以最终s1=128+64+32=224.
if temp >= s1 & temp < s2;
J(i,j) = 255; break;%%判断temp是否在s1和s2范围之内,是的话给J(i,j)赋值255.其实就是双阈值分割
end
end
end
end
J = uint8(J);
figure; imshow(J);%%显示图像J,总共三幅,第一幅的阈值128


我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我很郁闷啊?
西平县驻马店战国冶铁遗址地址在什么地方,想
观察下列式子:第一个式子:5方-4方=3方;第
我想买个4000元左右的笔记本电脑,最好是联想
我用网上银行<那个U盾的》充值和买东西 到最
求有趣的BOOK
被朋友不信任的句子,不值得深交的朋友句子
苏州现在水费价格?
康乃馨怎么养,康乃馨怎么才能养好啊,我的都
这个怎么填?要详细
作文,难忘的老师,400--600字,
我不想老公这样
脸上被抓破了,长疤了该怎么办?长疤期间能不
i can’t get no satisfaction
晚上在寝室里,用手机上网就是不会进,是什么
推荐资讯
千分之六手续费是多少,0.6‰的手续费是多少钱
扁钢是什么材质,扁钢的表示方法是什么?
今天玩CF发挥超长了被别人申诉封号了怎么办?
买单出口是什么意思?
口腔科,有唾液导管破裂这种说法吗?
岳阳楼区岳阳南湖风景区南湖街道办事处渔光社
无线网络自己家的不稳定,别人家的就能上
现在最好玩的单机游戏
浣溪沙意思越快越好
想起个英文名但五知起咩好 卫玲噶英文名应该
爲什麽開通萬花筒業務10元300m套餐取消之後、
脱甲了该怎么办
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?