图像处理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;                  %显示坐标系

时间: 2024-10-07 07:23:45

图像处理MATLAB源码的相关文章

群智能优化算法-测试函数matlab源码

群智能优化算法测试函数matlab源代码 global M; creatematrix(2); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %画ackley图. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % ackley x from[-5 5] % x=-5:0.01:5; % [x,y]=meshgrid(x); % temp1=x.^2+y.^2; % temp2=cos(2*pi*x)+cos(2*pi*y); % z=20+

非线性回归支持向量机——MATLAB源码

支持向量机和神经网络都可以用来做非线性回归拟合,但它们的原理是不相同的,支持向量机基于结构风险最小化理论,普遍认为其泛化能力要比神经网络的强.大量仿真证实,支持向量机的泛化能力强于神经网络,而且能避免神经网络的固有缺陷——训练结果不稳定.本源码可以用于线性回归.非线性回归.非线性函数拟合.数据建模.预测.分类等多种应用场合. function [Alpha1,Alpha2,Alpha,Flag,B]=SVMNR(X,Y,Epsilon,C,TKF,Para1,Para2)%%% SVMNR.m%

根据MATLAB的histeq函数改写的运行在OpenCV下的直方图规定化C源码!

据说,图像的直方图规定化比直方图均衡化用得更多,但是很奇怪的是OpenCV居然没有图像直方图规定化的源码!所以,我就有必要在OpenCV下写一个图像直方图规定化处理的函数,以方便将来使用. 我在网上找了几个直方图均稀化的源码,并基于OpenCV来改写这些源码,效果都不如MATLAB的histeq函数,这其中改写的艰辛与繁琐就不细说了.最后,没办法,只好学习MATALB的histeq函数源码,并对其进行基于OpenCV的改写. 虽然我最终改写成功了,但是对算法还是不太理解,只能按照MATLAB的帮

PLSA模型的再理解以及源码分析

PLSA模型的再理解以及源码分析 之前写过一篇PLSA的博文,其中的收获就是知道PLSA是LSA在概率层面的扩展,知道了PLSA是一种主题模型,知道了PLSA中的参数估计使用的是EM算法.当时我就认为,这样子经典好用的算法,我是会回头再来理解它的,这样子才会有更加深刻的心得.所以有了这篇PLSA模型的再理解. 1. 两种思路解PLSA模型 参考了很多资料,发现大体上有两种解决PLSA模型的思路.下面我们大致说一下它们的思路. 思路一:EM算法中需要更新两个概率 PLSA模型的示意图如下: 其中包

DICOM医学图像处理:storescp.exe与storescu.exe源码剖析,学习C-STORE请求

背景: 上一篇专栏博文中针对PACS终端(或设备终端,如CT设备)与RIS系统之间worklist查询进行了介绍,并着重对比分析了DICOM3.0中各部分对DICOM网络通讯服务的定义.此次通过结合早些时间的博文DICOM医学图像处理:基于DCMTK工具包学习和分析worklist,对DCMTK开源库中提供的storescp.exe和storescu.exe工具的源码进行剖析,从底层深入了解C-STORE服务的触发及响应. 分析思路: storescp.exe和storescu.exe分别充当着

图像处理之增强---图像增强算法四种,图示与源码,包括retinex(ssr、msr、msrcr)和一种混合算法

申明:本文非笔者原创,原文转载自:http://blog.csdn.net/onezeros/article/details/6342661 两组图像:左边较暗,右边较亮 第一行是原图像,他们下面是用四种算法处理的结果 依次为: 1.一种混合算法 2.msr,multi-scale retinex 3.msrcr,multi-scale retinex with color restoration 4.ssr,single scale retinex           源码,retinex算法

Atitit Atitit 图像处理之  Oilpaint油画滤镜 水彩画 源码实现

Atitit Atitit 图像处理之 Oilpaint油画滤镜 水彩画 源码实现 1.1. 具体原理参考1 2. 水彩画滤镜算法如下:1 2.1. 这个其实就是灰度层次降低维度的过程.2 2.2. 模板半径Radius用来调节水彩画的水彩程度.即是颜色的降低维度的过程2 1.1. 具体原理参考 Atitit 图像处理之仿油画效果 Oilpaint油画滤镜 水彩画 漫画滤镜 v2 2. 水彩画滤镜算法如下: 灰度,离散化(聚类).. 灰度层次N就是水彩画最多使用的颜色明暗层次,一般7种一下为好

Matlab.NET混合编程技巧之——直接调用Matlab内置函数(附源码)

原文:[原创]Matlab.NET混合编程技巧之--直接调用Matlab内置函数(附源码) 在我的上一篇文章[原创]Matlab.NET混编技巧之--找出Matlab内置函数中,已经大概的介绍了matlab内置函数在混合编程中的优点,并通过程序找出了matlab中的大部分内置函数,当然更多人关心是如何像我所说得那样,不用直接编译,就直接在C#中调用这些内置函数.本文就带你揭开这些谜团. 声明,这篇文章是需要一点点混合编程基础的,基本概念和过程要懂一点,如果能简单成功混编一个简单的计算或者绘图例子

Qt Quick 图像处理实例之美图秀秀(附源码下载)

在<Qt Quick 之 QML 与 C++ 混合编程详解>一文中我们讲解了 QML 与 C++ 混合编程的方方面面的内容,这次我们通过一个图像处理应用,再来看一下 QML 与 C++ 混合编程的威力,同时也为诸君揭开美图秀秀.魔拍之类的相片美化应用的底层原理. 项目的创建过程请参考<Qt Quick 之 Hello World 图文详解>,项目名称为 imageProcessor ,创建完成后需要添加两个文件: imageProcessor.h 和 imageProcessor.