资源简介
关于图像预处理部分的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(‘原
- 上一篇:改进的均值滤波matlab代码
- 下一篇:FSOA算法的代码实现MATLAB
相关资源
- FSOA算法的代码实现MATLAB
- 改进的均值滤波matlab代码
- 利用MATLAB和Robot toolbox 做的一个简单的
-
机械臂simuli
nk运动模拟 - 脉振高频信号注入法电机仿真
- 聚焦多波束成像matlab
- 阵列扫描matlab
- MATLAB+信号处理超级学习手册-程序代码
-
matlab读xm
l文档 - TVP-VAR模型的MATLAB代码
- Matlab关于csi信道信息获取
- 基于matlab的车牌识别程序280698
- A星算法的路径规划MATLAB实现
- WGS-84坐标系转大地坐标系
- SATD算法Matlab代码
- 基于支持向量机的故障诊断
- 基于MATLAB软件GUI界面的可编程电音合
- TDOA算法matlab仿真代码
- 视频的车流量统计
- 基于Matlab的CDMA通信系统下行信道的仿
- matlab开发-SortinoRatio
- matlab开发-灰度图像的jpeg压缩
- matlab开发-永磁TDC并联电机数学模型
- matlab开发-3相SPWM整流器
- matlab开发-最大最小特征值组合
- matlab开发-Kilobotswarm控制Matlabarduino
- matlab开发-简单音频播放
- matlab开发-图像传输
- matlab开发-记录文件的绘图仪加速度、
- matlab开发-动态系统中的故障检测和隔
评论
共有 条评论