📄 matlab灰度图像的按位分割.txt
字号:
这是我在数字图像处理作业上写的一些小程序,主要功能是实现灰度图像的按位分割:
主程序 :
I=imread('FIG5.jpg');
subplot(2,4,1),imshow(bit_seg(I,0)),title('bit1');
subplot(2,4,2), imshow (bit_seg(I,1)),title('bit2');
subplot(2,4,3), imshow (bit_seg(I,2)),title('bit3');
subplot(2,4,4), imshow (bit_seg(I,3)),title('bit4');
subplot(2,4,5), imshow (bit_seg(I,4)),title('bit5');
subplot(2,4,6), imshow (bit_seg(I,5)),title('bit6');
subplot(2,4,7), imshow (bit_seg(I,6)),title('bit7');
subplot(2,4,8), imshow (bit_seg(I,7)),title('bit8');
函数bit_seg:
%函数输入参数为需要位分割的图像image,和分割所依据的是第几位bit,输出为%位分割后的标记矩阵。
%位图象分割程序
%author:zdq,any question please contact:zdq823@gmail.com
%this fuction is to segment a gray picture with bit
function result=bit_seg(image,bit)
[height,width]=size(image);
result=zeros(height,width);
for i=1:height
for j=1:width
k=1;
flag=0;
while k<(2^(8-bit))
if image(i,j)<k*(2^bit)
result(i,j)=0;
flag=1;
elseif k*(2^bit)<=image(i,j)&&image(i,j)<(k+1)*(2^bit)
result(i,j)=255;
flag=1;
end
k=k+2;
if(flag)
break;
end
end
end
end
上面这程序需要循环的次数较多,我们可以考虑采用下面的改进算法,可提高效率:
function result=bit_seg1(image,bit)
[height,width]=size(image);
result=zeros(height,width);
for i=1:height
for j=1:width
if mod((fix(double(image(i,j))/(2^bit))+1),2)
result(i,j)=0;
else
result(i,j)=255;
end
end
end
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -