• 大小: 14KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-17
  • 语言: Matlab
  • 标签: matlab  yuchuli  

资源简介

关于图像预处理部分的matlab代码,包含常见的灰度化、均衡化、阈值分割以及形态学操作等等

资源截图

代码片段和文件信息

%预处理过程

clear all;
close all;
clc;

I=imread(‘F:\image process works\dzy\hhh\bjx2.jpg‘);
I=rgb2gray(I);
subplot(221)imshow(I)title(‘灰度图‘);
subplot(222)imhist(I)title(‘灰度直方图‘);

I1=histeq(I);
subplot(223)imshow(I1)title(‘直方图均衡化‘);
subplot(224)imhist(I)title(‘直方图‘);

%% 线性平滑滤波器
I2=imnoise(I‘salt & pepper‘0.02);
% figure
% imshow(I2)title(‘添加椒盐噪声的图像‘);
k1=filter2(fspecial(‘average‘3)I2)/255; %进行3*3模板平滑滤波
k2=filter2(fspecial(‘average‘5)I2)/255; %进行5*5模板平滑滤波
k3=filter2(fspecial(‘average‘7)I)/255; %进行7*7模板平滑滤波
k4=filter2(fspecial(‘average‘9)I2)/255; %进行9*9模板平滑滤波
figure
subplot(221)imshow(k1);title(‘3*3模板平滑滤波‘);
subplot(222)imshow(k2);title(‘5*5模板平滑滤波‘);
subplot(223)imshow(k3);title(‘7*7模板平滑滤波‘);
subplot(224)imshow(k4);title(‘9*9模板平滑滤波‘);

%%
%中值滤波器
I3=imnoise(I‘salt & pepper‘0.02);
figure
subplot(231)imshow(I);title(‘原图像‘);
subplot(232)imshow(I3);title(‘添加椒盐噪声图像‘);
k1=medfilt2(I3);       %进行3*3模板中值滤波
k2=medfilt2(I3[55]); %进行5*5模板中值滤波
k3=medfilt2(I3[77]); %进行7*7模板中值滤波
k4=medfilt2(I3[99]); %进行9*9模板中值滤波
subplot(233)imshow(k1);title(‘3*3模板中值滤波‘);
subplot(234)imshow(k2);title(‘5*5模板中值滤波‘);
subplot(235)imshow(k3);title(‘7*7模板中值滤波‘);
subplot(236)imshow(k4);title(‘9*9模板中值滤波‘);

%%
%用Sobel算子和拉普拉斯对图像锐化
I=imread(‘F:\image process works\dzy\hhh\bjx2.jpg‘);
figure
subplot(221)imshow(I)title(‘原始图像‘);
axis([501920501080]);
grid on;   %显示网格线
axis on;   %显示坐标系
I1=im2bw(I);
subplot(222)imshow(I1)title(‘二值图像‘);
axis([501920501080]);
grid on;   %显示网格线
axis on;   %显示坐标系
H=fspecial(‘sobel‘);   %选择sobel算子?
J=filter2(HI1);       %卷积运算
subplot(223)imshow(J)title(‘sobel算子锐化图像‘);
axis([501920501080]);
grid on;   %显示网格线
axis on;   %显示坐标系
h=[0 1 01 -4 10 1 0];   %拉普拉斯算子
I1=double(I1);
J1=conv2(I1h‘same‘);    %卷积运算
subplot(224)imshow(J1)title(‘拉普拉斯算子锐化图像‘);
axis([501920501080]);
grid on;   %显示网格线
axis on;   %显示坐标系

%%
%梯度算子检测边缘
I=imread(‘F:\image process works\dzy\hhh\bjx2.jpg‘);
figure
subplot(231)imshow(I)title(‘原始图像‘);
axis([501920501080]);
grid on;                          %显示网格线
axis on;                          %显示坐标系
I1=im2bw(I);
subplot(232)imshow(I1)title(‘二值图像‘);
axis([501920501080]);
grid on;                         %显示网格线
axis on;                         %显示坐标系
I2=edge(I1‘roberts‘);
subplot(233)imshow(I2)title(‘roberts算子分割结果‘);
axis([501920501080]);
grid on;                          %显示网格线
axis on;                          %显示坐标系
I3=edge(I1‘sobel‘);
subplot(234)imshow(I3)title(‘sobel算子分割结果‘);
axis([501920501080]);
grid on;                          %显示网格线
axis on;                          %显示坐标系
I4=edge(I1‘Prewitt‘);
subplot(235)imshow(I4)title(‘Prewitt算子分割结果‘);
axis([501920501080]);
grid on;                          %显示网格线
axis on;                          %显示坐标系

%%
%LOG算子检测边缘
I=imread(‘F:\image process works\dzy\hhh\bjx2.jpg‘);
subplot(221)imshow(I)title(‘原

评论

共有 条评论