MATLAB图像增强程序举例

1.灰度变换增强程序


% GRAY TRANSFORM
clc;
I=imread('pout.tif');
imshow(I);
J=imadjust(I,[0.3 0.7],[0 1],1);  %transforms the walues in the %intensity image I to values in J by linealy mapping %values between 0.3 and 0.7 to values between 0 and 1.
figure;
imshow(J);
J=imadjust(I,[0.3 0.7],[0 1],0.5);  % if GAMMA is less than 1,the  mapping si weighted toward higher (brighter)
%output values.
figure;
imshow(J);
J=imadjust(I,[0.3 0.7],[0 1],1.5);  % if GAMMA is greater than 1,the mapping si weighted toward lower (darker)
%output values.
figure;
imshow(J)
J=imadjust(I,[0.3 0.7],[0 1],1);  % If TOP<BOTTOM,the output image is reversed,as in a photographic negative.
figure;
imshow(J);


 

2.直方图灰度变换

%直方图灰度变换
[X,map]=imread('forest.tif');
I=ind2gray(X,map);%把索引图像转换为灰度图像
imshow(I);
title('原图像');
improfile%用鼠标选择一条对角线,显示线段的灰度值
figure;subplot(121)
plot(0:0.01:1,sqrt(0:0.01:1))
axis square
title('平方根灰度变换函数')
subplot(122)
maxnum=double(max(max(I)));%取得二维数组最大值
J=sqrt(double(I)/maxnum);%把数据类型转换成double,然后进行平方根变换
%sqrt函数不支持uint8类型
J=uint8(J*maxnum);%把数据类型转换成uint8类型
imshow(J)
title('平方根变换后的图像')

3.直方图均衡化程序举例

% HISTGRAM EAQUALIZATION
clc;
% Clear command window

I=imread('tire.tif');
% reads the image in tire.tif into I

imshow(I);
% displays the intensity image I with 256 gray levels

figure;
%creates a new figure window

imhist(I);
% displays a histogram for the intensity image I

J=histeq(I,64);
% transforms the intensity image I,returning J an intensity

figure;
%image with 64 discrete levels

imshow(J);
figure;
imhist(J);
J=histeq(I,32);
%transforms the intensity image ,returning in % J an intensity

figure;
%image with 32 discrete levels

imshow(J);
figure;
imhist(J);

4.直方图规定化程序举例

% HISTGRAM REGULIZATION
clc;
%Clear command window
I=imread('tire.tif');
%reads the image in tire.tif into I

J=histeq(I,32);
%transforms the intensity image I,returning in

%J an intensity image with 32 discrete levels
[counts,x]=imhist(J);
%displays a histogram for the intensity image I

Q=imread('pout.tif');
%reads the image in tire.tif into I

figure;
imshow(Q);
figure;
imhist(Q);
M=histeq(Q,counts);
%transforms the intensity image Q so that the

%histogram of the output image M approximately matches counts
figure;
imshow(M);
figure;
imhist(M);

空域滤波增强部分程序

1.线性平滑滤波
I=imread('eight.tif');
J=imnoise(I,'salt & pepper',0.02);
subplot(221),imshow(I)
title('原图像')
subplot(222),imshow(J)
title('添加椒盐噪声图像')
K1=filter2(fspecial('average',3),J)/255;%应用3*3邻域窗口法
subplot(223),imshow(K1)
title('3x3窗的邻域平均滤波图像')
K2=filter2(fspecial('average',7),J)/255;%应用7*7邻域窗口法
subplot(224),imshow(K2)
title('7x7窗的邻域平均滤波图像')

 

 

2.中值滤波器
MATLAB中的二维中值滤波函数medfit2来进行图像中椒盐躁声的去除
%IMAGE NOISE REDUCTION WITH MEDIAN FILTER
clc;
hood=3;%滤波窗口
[I,map]=imread('eight.tif');
imshow(I,map);
noisy=imnoise(I,'salt & pepper',0.05);
figure;
imshow(noisy,map);
filtered1=medfilt2(noisy,[hood hood]);
figure;
imshow(filtered1,map);
hood=5;
filtered2=medfilt2(noisy,[hood hood]);
figure;
imshow(filtered2,map);
hood=7;
filtered3=medfilt2(noisy,[hood hood]);
figure;
imshow(filtered3,map);
3. 4邻域8邻域平均滤波算法
% IMAGE NOISE REDUCTION WITH MEAN ALGORITHM
clc;
[I,map]=imread('eight.tif');
noisy=imnoise(I,'salt & pepper',0.05);
myfilt1=[0 1 0;1 1 1;0 1 0];%4邻域平均滤波模版
myfilt1=myfilt1/9;%对模版归一化
filtered1=filter2(myfilt1,noisy);
imshow(filtered1,map);
myfilt2=[1 1 1;1 1 1;1 1 1];
myfilt2=myfilt2/9;
filtered2=filter2(myfilt2,noisy);
figure;
imshow(filtered2,map);

频域增强程序举例

1.低通滤波器
% LOWPASS FILTER
clc;
[I,map]=imread('eight.tif');
noisy=imnoise(I,'gaussian',0.05);
imshow(noisy,map);
myfilt1=[1 1 1;1 1 1;1 1 1];
myfilt1=myfilt1/9;
filtered1=filter2(myfilt1,noisy);
figure;
imshow(filtered1,map);
myfilt2=[1 1 1;1 2 1;1 1 1];
myfilt2=myfilt2/10;
filtered2=filter2(myfilt2,noisy);
figure;
imshow(filtered2,map);
myfilt3=[1 2 1;2 4 2; 1 2 1];
myfilt3=filter2(myfilt3,noisy);
figure;
imshow(filtered3,map);
2.布特沃斯低通滤波器图像实例
I=imread('saturn.png');
J=imnoise(I,'salt & pepper',0.02);
subplot(121),imshow(J)
title('含噪声的原图像')
J=double(J);
f=fft2(J);
g=fftshift(f);
[M,N]=size(f);
n=3;d0=20;
n1=floor(M/2);n2=floor(N/2);
for i=1:M;
for j=1:N;
d=sqrt((i-n1)^2+(j-n2)^2);
h=1/(1+0.414*(d/d0)^(2*n));
g(i,j)=h*g(i,j);
end
end
g=ifftshift(g);
g=uint8(real(ifft2(g)));
subplot(122),imshow(g)
title('三阶Butterworth滤波图像')

色彩增强程序举例

1.真彩色增强实例:
%真彩色图像的分解
clc;
RGB=imread('peppers.png');
subplot(221),imshow(RGB)
title('原始真彩色图像')
subplot(222),imshow(RGB(:,:,1))
title('真彩色图像的红色分量')
subplot(223),imshow(RGB(:,:,2))
title('真彩色图像的绿色分量')
subplot(224),imshow(RGB(:,:,3))
title('真彩色图像的蓝色分量')
2.伪彩色增强举例:
I=imread('cameraman.tif');
imshow(I);
X=grayslice(I,16);%thresholds the intensity image I using
%threshold values 1/16,2/16,…..,15/16,returning an indexed %image in X
figure;
imshow(X,hot(16));
 
3.假彩色增强处理程序举例
[RGB]=imread('ghost.bmp');
imshow(RGB);
RGBnew(:,:,1)=RGB(:,:,3);
RGBnew(:,:,2)=RGB(:,:,1);
RGBnew(:,:,3)=RGB(:,:,2);
figure;
subplot(121);
imshow(RGB);
subplot(122);
imshow(RGBnew);

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/253639.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Design Compiler指南——设计综合过程

在前面一章介绍完施加约束之后&#xff0c;接下来要做的工作就是将设计进行综合编译(compile)&#xff0c;本文我们将主要讨论综合编译的过程。主要分为这样几个部分&#xff1a; 优化的三个阶段及其特点编译的策略编译层次化的设计 一、优化的三个阶段 这一节我们介绍Design …

How to find Material based on Sales Organization and Distribution Channel

Fetch data from Database View /BEV1/RBEA_V Fields: VKORG - Sales Organization VTWEG - Distribution Channel MATNR - Material Number 转载于:https://www.cnblogs.com/JulietLV/p/7436028.html

iOS开发 iOS10兼容访问http

添加NSAppTransportSecurity的字典会自动变成 AppTransportSecurity再添加 allow Arbitary Loads Boolean YES转载于:https://www.cnblogs.com/diweinan/p/6233052.html

django 利用PIL 保存图片

在使用django时不知道怎么保存图片&#xff0c;又不想用它的form &#xff0c;在网上找了许久&#xff0c;终于找到个解决方案&#xff0c;利用PIL.image 将POST上来的图片保存到media目录下&#xff0c;然后再修改models from PIL import Imagescreen_name request.POST.get(…

图像转灰度图

MyYuanLaiPic imread(e:/image/matlab/darkMouse.jpg);%读取RGB格式的图像 MyFirstGrayPic rgb2gray(MyYuanLaiPic);%用已有的函数进行RGB到灰度图像的转换 [rows , cols , colors] size(MyYuanLaiPic);%得到原来图像的矩阵的参数 MidGrayPic zeros(rows , cols);…

Design Compiler指南——后综合过程

本文我们着重讨论使用Design Compiler综合大型设计时要注意的一些问题&#xff0c;比如怎样调整综合方法&#xff0c;出现约束违反后怎样修正&#xff0c;怎样给不同的子模块作时序和负载预算&#xff0c;以及给整个设计在具体综合之前先作一个预估(Design Exploration)等等。 …

web worker原理 SSE原理

第一部分 什么是 web worker&#xff1f; 我们一直强调JavaScript是单线程的&#xff0c;但是web worker的出现使得JavaScript可以在多线程上跑&#xff0c;只是web worker本身适合用于一些复杂的、耗费cpu的运算&#xff0c;不能操作window、document、parent对象&#xff0c…

如何寻回xp盘符丢失的数据

分区丢失是比较常见的数据恢复案例&#xff0c;需要注意&#xff0c;分区丢失后不要再重建新的分区。保护好资料丢失现场&#xff0c;可以最大程度的恢复出资料。具体的恢复方法看正文了解。 工具/软件&#xff1a;星空数据恢复软件 步骤1&#xff1a;先百度搜索并下载程序打开…

afx_msg函数意思

应用程序框架产生的消息映射函数 例如&#xff1a;afx_msg void OnBnClickedButton1(); 其中 afx_msg为消息标志&#xff0c;它向系统声明&#xff1a;有消息映射到函数实现体&#xff1b; 而在map宏定义中&#xff0c;就有具体消息和此函数的映射定义&#xff08;可以是自定义…

文件得编码和文件名的编码是不一样的

1.新知识&#xff0c;通过文件后坠名的编码判断文件类型&#xff0c;可以有效的防止脚本文件伪装为正常得文件。 2.拦截器和过滤器。 过滤器只能够在http请求和回复的时候进行处理。 但是拦截器可以在很多地方拦截&#xff0c;例如程序抛异常等都可以捕获的到。还可以进行权限得…

Visual computing——概述

Visual Computing&#xff08;视觉计算&#xff09;是所有处理二维图像和三维模型的计算机科学学科的总称&#xff0c;即计算机图形学、图像处理、可视化、计算机视觉、虚拟和增强现实、视频处理&#xff0c;但也包括模式识别、人机交互、机器学习等方面。核心挑战是视觉信息&a…

推荐!手把手教你使用Git

一&#xff1a;Git是什么&#xff1f; Git是目前世界上最先进的分布式版本控制系统。 二&#xff1a;SVN与Git的最主要的区别&#xff1f; SVN是集中式版本控制系统&#xff0c;版本库是集中放在中央服务器的&#xff0c;而干活的时候&#xff0c;用的都是自己的电脑&#xff0…

I2C协议学习

I2C Bus(Inter-Integrated Circuit Bus) 最早是由Philips半导体&#xff08;现被NXP收购&#xff09;开发的两线式串行总线&#xff0c;常用于微控制器与外设之间的连接。 一、概述 以下是 I2C 总线的一些特性&#xff1a; 只需要两条总线&#xff1b;一条串行数据线 (SDA) 和…

ajax的简单介绍

响应主体&#xff0c;就是服务器给我们返回的结果内容&#xff08;浏览器里的responsive&#xff09; 请求主体&#xff0c;是我们给服务器的数据 输入域名发起一次请求&#xff0c;得到的可能是标签&#xff0c;标签可能还要在发一次请求 post怎么发请求&#xff1a;form表单 …

DM365 color space

YUV的几种格式 420P&#xff1a;420P数据的存放方式一般是先存放Y&#xff0c;然后存放U&#xff0c;最后存放V的数据&#xff0c;每一个像素使用12bits(1.5BYTE)保存。 422P&#xff1a;422P数据的存放方式也是先存放Y&#xff0c;然后存放U&#xff0c;最后存放V的数据&…

JavaScript 标准参考教程-阅读总结(三)

1、DOM模型 DOM 是 JavaScript 操作网页的接口&#xff0c;全称为“文档对象模型”&#xff08;Document Object Model&#xff09;。它的作用是将网页转为一个 JavaScript 对象&#xff0c;从而可以用脚本进行各种操作&#xff08;比如增删内容&#xff09;。 1&#xff09;do…

P1136 迎接仪式

P1136 迎接仪式 题目描述 LHX教主要来X市指导OI学习工作了。为了迎接教主&#xff0c;在一条道路旁&#xff0c;一群Orz教主er穿着文化衫站在道路两旁迎接教主&#xff0c;每件文化衫上都印着大字。一旁的Orzer依次摆出“欢迎欢迎欢迎欢迎……”的大字&#xff0c;但是领队突然…

云服务器 VNC 远程连接

此服务器买来是为了搭建IC EDA云的&#xff0c;因此选用的是centOS 6的环境&#xff0c;对各EDA软件兼容较好。本人手头拮据&#xff0c;因此买的是腾讯云活动期间的云服务器&#xff0c;只能说够用吧。 一、桌面安装 在云服务器控制台登陆上远程主机&#xff0c;依次执行下列…

Python自动化测试框架有哪些?

作者 | KITTY GUPTA 译者 | 张健欣 令开发者万分高兴的是&#xff0c;开发自己的测试框架的日子终于结束了。以前&#xff0c;开发团队接手一个项目并开始开发时&#xff0c;除了项目模块的实际开发之外&#xff0c;他们不得不为这个项目构建一个自动化测试框架。一个测试框架应…

面试题——4种数组去重的方法

数组去重或者其衍生作为笔试题或者机试题出现的几率也是很大的&#xff0c;写出的方法越多&#xff0c;则让面试官觉得你思维越开阔&#xff0c;那么成功的几率当然就大了。 废话不多说&#xff0c;下面来说说下面我整理的4中数组去重的方法 方法一&#xff1a; findInArr方法s…