图像反转

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源代码的更多相关文章

  1. 基于小波变换的数字图像处理(MATLAB源代码)

    基于小波变换的数字图像处理(MATLAB源代码) clear all; close all; clc;M=256;%原图像长度N=64; %水印长度[filename1,pathname]=uiget ...

  2. paper 69:Haar-like矩形遍历检测窗口演示Matlab源代码[转载]

    Haar-like矩形遍历检测窗口演示Matlab源代码 clc; clear; close all; % Haar-like特征矩形计算 board = 24 % 检测窗口宽度 num = 24 % ...

  3. 数字图像处理(MATLAB版)学习笔记(1)——第1章 绪言

    0.下定决心 当当入手数字图像处理一本,从此开此正式跨入数字图像处理大门.以前虽然多多少少接触过这些东西,也做过一些相关的事情,但感觉都不够系统,也不够专业,从今天开始,一步一步地学习下去,相信会有成 ...

  4. 数字图像处理:基于MATLAB的车牌识别项目 标签: 图像处理matlab算法 2017-06-24 09:17 98人阅读 评论(0)

    学过了数字图像处理,就进行一个综合性强的小项目来巩固一下知识吧.前阵子编写调试了一套基于MATLAB的车牌识别的项目的代码.今天又重新改进了一下代码,识别的效果好一点了,也精简了一些代码.这里没有使用 ...

  5. (转)Haar-like矩形遍历检测窗口演示Matlab源代码

    from:http://blog.sina.com.cn/s/blog_736aa0540101kzqb.html clc; clear; close all; % Haar-like特征矩形计算 b ...

  6. [00]数字图像处理-matlab速成

    原本听的是mooc武汉大学的数字图像处理课程,但是无奈老师读ppt的能力太强,不太适应,后面的课程对于实验方面的要求甚低,无奈之下到处找课程,终于找到了一个适合自己的教程<王伟强-数字图像处理& ...

  7. 蚁群算法求解旅行商问题(附c和matlab源代码)

    前几天写了个模拟退火算法的程序,然后又陆陆续续看了很多群智能算法,发现很多旅行商问题都采用蚁群算法来求解,于是开始写蚁群算法的模板.网上关于蚁群算法的理论很多就不再这里赘述了,下面直接上代码和进行简单 ...

  8. 模拟退火算法求解旅行商问题(附c和matlab源代码)

    前几天在做孔群加工问题,各种假设到最后就是求解旅行商问题了,因为原本就有matlab代码模板所以当时就改了城市坐标直接用了,发现运行速度惨不忍睹,最后用上了两个队友的电脑一起跑.这次模拟结束后在想用c ...

  9. 数字图像处理(MATLAB版)学习笔记(2)——第2章 灰度变换与空间滤波

    0.小叙闲言 1.本章整体结构 2.书中例子 例2.1 主要是使用函数imadjust,来熟悉一下灰度处理,体验一把 >> imread('myimage.jpg'); >> ...

随机推荐

  1. java的反射机制(第二篇)

    本文转载自:http://c.biancheng.net/cpp/html/1781.html 要理解RTTI在Java中的工作原理,首先必须知道类型信息在运行时是如何表示的,这项工作是由“Class ...

  2. word-ladder总结

    title: word ladder总结 categories: LeetCode tags: 算法 LeetCode comments: true date: 2016-10-16 09:42:30 ...

  3. Codeforces Beta Round #97 (Div. 1) B. Rectangle and Square 暴力

    B. Rectangle and Square 题目连接: http://codeforces.com/contest/135/problem/B Description Little Petya v ...

  4. Codeforces Round #256 (Div. 2) E Divisors

    E. Divisors Bizon the Champion isn't just friendly, he also is a rigorous coder. Let's define functi ...

  5. Python学习笔记(三):随机生成函数方法

    本文是在Python2下总结! Python中的random模块用于生成随机数,如果想生成随机数需要先导入random的模块然后才能使用其中的方法,下面简单介绍一下常用的结果函数方法: 1·.rand ...

  6. 手把手教你搭建Docker私有仓库

    章节一:centos7 docker安装和使用_入门教程 章节二:使用docker部署Asp.net core web应用程序 有了前面的基础,接下来的操作就比较简单了.先准备两台虚拟机,两台机器上都 ...

  7. Geeks 一般二叉树的LCA

    不是BST,那么搜索两节点的LCA就复杂点了,由于节点是无序的. 以下是两种方法,都写进一个类里面了. 当然须要反复搜索的时候.能够使用多种方法加速搜索. #include <iostream& ...

  8. SQL语句200条(转)

    //重建数据库 101, create database testdatabase;use database testdatabase; 102, create table tt1(id int, n ...

  9. Extjs文件选择器

    Ext.hoo.component.FileBrowserComponent.js /** * Ext.hoo.component.FileBrowserWindow 系统文件浏览选择组件,可以选定电 ...

  10. error: conflicting type qualifiers for &#39;xxxxx&#39;

    网上的非常多解释--非常难理解-- 情景描写叙述: 在代码中,写了A\B两个文件,A:是.c文件,B是.h文件和.c文件. 在A中包括了B.h文件. 在B.h文件里声明了A中定义的变量. 这样编译的情 ...