作业帮 > 综合 > 作业

分析一段matlab中图像灰度值分析代码,变换为二值图

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/09 10:20:15
分析一段matlab中图像灰度值分析代码,变换为二值图
[m n] =size(k);
%%%% 对图像灰度值进行分析
t=k(1:m/2,1:n/2);
max_t=max(t(:));
k(1:m/2,1:n/2)=k(1:m/2,1:n/2)>0.45*max_t;
t=k(1:m/2,n/2+1:end);
max_t=max(t(:));
k(1:m/2,n/2+1:end)=k(1:m/2,n/2+1:end)>0.45*max_t;
t=k(2*m/3+1:end,:);
max_t=max(t(:));
k(2*m/3+1:end,:)=k(2*m/3+1:end,:)>0.45*max_t;
k(m/2+1:end,:)=0;
figure(14);imshow(k);
其中k为一副灰度图,该程序最后变换为二值图.最好把每一段代码解释一下,最后解释它到底选择什么阈值.
这段程序有问题吧,不知道作者要干什么.
开始把图像的1/4取出来,找出其中像素值最大值,凡是大于0.45*最大值的点设为1,否则设为0.
然后处理另1/4,1/2~1/3,最后把另一半设为0. 最后图像也显示不出来(得*255才行).
再问: 再问下,k(1:m/2,n/2+1:end)是指矩阵中1~m/2行,n/2+1~end列,
k(2*m/3+1:end,:)是指2*m/3~end这些行吗 ?主要我对矩阵中怎样提取某些子矩阵不清楚,能不能推荐一些网上相关资料,谢谢。
再答: 你说的没错,这是提取矩阵的最主要方法,掌握这个可以了