基本小函数(5)
发布时间:2021-06-06
发布时间:2021-06-06
图像处理的有用资料
各多2,成为镜框的尺寸
b=zeros(m,n); %定义滤波后的数组 % 三,拉普拉斯运算的三个矩阵
Temp=zeros(3); %定义三阶方阵"Temp",为临时矩阵 op=[0 -1 0;-1 4 -1;0 -1 0]; %定义拉普拉斯算子
Result=zeros(3); %定义三阶方阵"Result",为运算结果矩阵 % 四,原图像矩阵处理,做一个"像框"
PicFrame(2:m+1,2:n+1)=PicInput; %把原图的矩阵放到新的矩阵"PicFrame"中心,它的第一行、最后一行、第一列、
%最后一列都是"0",即原图矩阵周围有一圈"0"的边缘,好像给图像加一个像框
PicFrame(1,:)=PicFrame(2,:); %把第二行的值赋给第一行 PicFrame(r,:)=PicFrame(r-1,:); %把倒数第二行的值赋给最后一行 PicFrame(:,1)=PicFrame(:,2); %把第二列的值赋给第一列 PicFrame(:,c)=PicFrame(:,c-1); %把倒数第二列的值赋给最后一列 % 五,用拉普拉斯算子进行滤波 for i=1:m for j=1:n
Temp=PicFrame(i:i+2,j:j+2); %从"PicFrame"矩阵中依次取出三阶方阵,赋值给临时矩阵"Temp"
Result=Temp.*op; %临时矩阵与拉普拉斯算子"点乘",赋值给结果矩阵"Result"
b(i,j)=sum(sum(Result));
%结果矩阵中"十"字线上元素相加,赋值给输出矩阵中相应的位置,
%即临时矩阵中心元素所对应的位 end end
% 六,设定阈值,将图像二值化
% thresh=1.618*mean2(abs(b)) 可用黄金分割的比例选阈值优点是边缘清晰
e=repmat(logical(uint8(0)),m,n); %创建数组 e(find(b>thresh))=1; %阈值判断二值化 PicOut=e; %函数输出
figure,subplot(1,2,1),imshow(PicInput); %显示原图片