图像处理MATLAB源代码
图像反转
I=imread('nickyboom.jpg');
J=double(I);
J=-J+(256-1); %图像反转线性变换
H=uint8(J);
subplot(1,2,1),imshow(I);
subplot(1,2,2),imshow(H);
直方图均衡化
MATLAB 程序实现例如以下:
I=imread('nickyboom.jpg);
I=rgb2gray(I);
figure;
subplot(2,2,1);
imshow(I);
subplot(2,2,2);
imhist(I);
I1=histeq(I);
figure;
subplot(2,2,1);
imshow(I1);
subplot(2,2,2);
imhist(I1);
均值滤波器
I=imread('nickyboom.jpg');
subplot(231)
imshow(I)
title('原始图像')
I=rgb2gray(I);
I1=imnoise(I,'salt & pepper',0.02);
subplot(232)
imshow(I1)
title(' 加入椒盐噪声的图像')
k1=filter2(fspecial('average',3),I1)/255; %进行3*3模板平滑滤波
k2=filter2(fspecial('average',5),I1)/255; %进行5*5模板平滑滤波
k3=filter2(fspecial('average',7),I1)/255; %进行7*7模板平滑滤波
k4=filter2(fspecial('average',9),I1)/255; %进行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 模板平滑滤波');
中值滤波器
I=imread('nickyboom.jpg');
I=rgb2gray(I);
J=imnoise(I,'salt & pepper',0.02);
subplot(231),imshow(I);title('原图像');
subplot(232),imshow(J);title('加入椒盐噪声图像');
k1=medfilt2(J); %进行3*3模板中值滤波
k2=medfilt2(J,[5,5]); %进行5*5模板中值滤波
k3=medfilt2(J,[7,7]); %进行7*7模板中值滤波
k4=medfilt2(J,[9,9]); %进行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 模板中值滤波');
边缘检測
I=imread('nickyboom.jpg');
subplot(2,3,1);
imshow(I);
title('原始图像');
axis([50,250,50,200]);
grid on; %显示网格线
axis on; %显示坐标系
I1=im2bw(I);
subplot(2,3,2);
imshow(I1);
title('二值图像');
axis([50,250,50,200]);
grid on; %显示网格线
axis on; %显示坐标系
I2=edge(I1,'roberts');
subplot(2,3,3);
imshow(I2);
title('roberts算子边缘检測');
axis([50,250,50,200]);
grid on; %显示网格线
axis on; %显示坐标系
I3=edge(I1,'sobel');
subplot(2,3,4);
imshow(I3);
title('sobel算子边缘检測');
axis([50,250,50,200]);
grid on; %显示网格线
axis on; %显示坐标系
I4=edge(I1,'Prewitt');
subplot(2,3,5);
imshow(I4);
title('Prewitt算子边缘检測 ');
axis([50,250,50,200]);
grid on; %显示网格线
axis on; %显示坐标系
I5=edge(I1,'log');
subplot(2,3,6);
imshow(I5);
title('log算子边缘检測');
axis([50,250,50,200]);
grid on; %显示网格线
axis on; %显示坐标系
自己主动阈值法:Otsu法
用MATLAB实现Otsu算法:
clc
clear all
I=imread('nickyboom.jpg');
subplot(1,2,1),imshow(I);
title('原始图像')
axis([50,250,50,200]);
grid on; %显示网格线
axis on; %显示坐标系
level=graythresh(I); %确定灰度阈值
BW=im2bw(I,level);
subplot(1,2,2),imshow(BW);
title('Otsu 法阈值切割图像')
axis([50,250,50,200]);
grid on; %显示网格线
axis on; %显示坐标系
膨胀操作
I=imread('nickyboom.jpg'); %加载图像
I1=rgb2gray(I);
subplot(1,2,1);
imshow(I1);
title('灰度图像')
axis([50,250,50,200]);
grid on; %显示网格线
axis on; %显示坐标系
se=strel('disk',1); %生成圆形结构元素
I2=imdilate(I1,se); %用生成的结构元素对图像进行膨胀
subplot(1,2,2);
imshow(I2);
title(' 膨胀后图像');
axis([50,250,50,200]);
grid on; %显示网格线
axis on; %显示坐标系
腐蚀操作
MATLAB 实现腐蚀操作
I=imread('xian.bmp'); %加载图像
I1=rgb2gray(I);
subplot(1,2,1);
imshow(I1);
title('灰度图像')
axis([50,250,50,200]);
grid on; %显示网格线
axis on; %显示坐标系
se=strel('disk',1); %生成圆形结构元素
I2=imerode(I1,se); %用生成的结构元素对图像进行腐蚀
subplot(1,2,2);
imshow(I2);
title('腐蚀后图像');
axis([50,250,50,200]);
grid on; %显示网格线
axis on; %显示坐标系
图像处理MATLAB源代码的更多相关文章
- 基于小波变换的数字图像处理(MATLAB源代码)
基于小波变换的数字图像处理(MATLAB源代码) clear all; close all; clc;M=256;%原图像长度N=64; %水印长度[filename1,pathname]=uiget ...
- paper 69:Haar-like矩形遍历检测窗口演示Matlab源代码[转载]
Haar-like矩形遍历检测窗口演示Matlab源代码 clc; clear; close all; % Haar-like特征矩形计算 board = 24 % 检测窗口宽度 num = 24 % ...
- 数字图像处理(MATLAB版)学习笔记(1)——第1章 绪言
0.下定决心 当当入手数字图像处理一本,从此开此正式跨入数字图像处理大门.以前虽然多多少少接触过这些东西,也做过一些相关的事情,但感觉都不够系统,也不够专业,从今天开始,一步一步地学习下去,相信会有成 ...
- 数字图像处理:基于MATLAB的车牌识别项目 标签: 图像处理matlab算法 2017-06-24 09:17 98人阅读 评论(0)
学过了数字图像处理,就进行一个综合性强的小项目来巩固一下知识吧.前阵子编写调试了一套基于MATLAB的车牌识别的项目的代码.今天又重新改进了一下代码,识别的效果好一点了,也精简了一些代码.这里没有使用 ...
- (转)Haar-like矩形遍历检测窗口演示Matlab源代码
from:http://blog.sina.com.cn/s/blog_736aa0540101kzqb.html clc; clear; close all; % Haar-like特征矩形计算 b ...
- [00]数字图像处理-matlab速成
原本听的是mooc武汉大学的数字图像处理课程,但是无奈老师读ppt的能力太强,不太适应,后面的课程对于实验方面的要求甚低,无奈之下到处找课程,终于找到了一个适合自己的教程<王伟强-数字图像处理& ...
- 蚁群算法求解旅行商问题(附c和matlab源代码)
前几天写了个模拟退火算法的程序,然后又陆陆续续看了很多群智能算法,发现很多旅行商问题都采用蚁群算法来求解,于是开始写蚁群算法的模板.网上关于蚁群算法的理论很多就不再这里赘述了,下面直接上代码和进行简单 ...
- 模拟退火算法求解旅行商问题(附c和matlab源代码)
前几天在做孔群加工问题,各种假设到最后就是求解旅行商问题了,因为原本就有matlab代码模板所以当时就改了城市坐标直接用了,发现运行速度惨不忍睹,最后用上了两个队友的电脑一起跑.这次模拟结束后在想用c ...
- 数字图像处理(MATLAB版)学习笔记(2)——第2章 灰度变换与空间滤波
0.小叙闲言 1.本章整体结构 2.书中例子 例2.1 主要是使用函数imadjust,来熟悉一下灰度处理,体验一把 >> imread('myimage.jpg'); >> ...
随机推荐
- poj 3463 最短路+次短路
独立写查错不能,就是维护一个次短路的dist 题意:给定一个有向图,问从起点到终点,最短路+比最短路距离长1的路的个数. Sample Input25 81 2 31 3 21 4 52 3 12 5 ...
- Codeforces Round #355 (Div. 2) B. Vanya and Food Processor 水题
B. Vanya and Food Processor 题目连接: http://www.codeforces.com/contest/677/problem/B Description Vanya ...
- Codeforces Round #288 (Div. 2) B. Anton and currency you all know 贪心
B. Anton and currency you all know time limit per test 0.5 seconds memory limit per test 256 megabyt ...
- JQ中get()与eq()的区别
.eq() : 减少匹配元素的集合,根据index索引值,精确指定索引对象. .get() : 通过检索匹配jQuery对象得到对应的DOM元素. 同样是返回元素,那么eq与get有什么区别呢? eq ...
- SoC嵌入式软件架构设计之七:嵌入式文件系统设计
嵌入式的系统区(system disk,SD)包含操作系统.驱动.中间件.应用和字库.UI资源等文件,本文讲述SD区的文件系统设计.文件系统最基本的目标是为了实现单个文件的定位和读写.由于一般代码都是 ...
- Window 8 启用 Telnet 命令工具一览图
Window 8 启用 Telnet 命令工具一览图 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创 ...
- sql 递归查询所有的下级
--> 生成测试数据表: [tb] IF OBJECT_ID('[Users]') IS NOT NULL DROP TABLE [Users] GO CREATE TABLE [Use ...
- 解决idea 控制台中文乱码
打开IntelliJ IDEA 14.0安装路径,小编的安装路径为:D:\Program Files\JetBrains\IntelliJ IDEA 14.0\bin 找到idea.exe.vmopt ...
- oracle-systemtap
https://github.com/hatem-mahmoud/scripts https://mahmoudhatem.wordpress.com/2015/05/26/stapora-v1-0- ...
- 32.NET中加密解密基本概念
对消息的接收方来说,安全的交流方式需要同时满足3个条件: 1.完整性:消息在传输途中没有被篡改过,即消息是完好无损的. 2.保密性:接收放可以理解或解密来自发送方的信息.(不保证第三方无法获得,但保证 ...