图像增强.docx

上传人:b****5 文档编号:11669911 上传时间:2023-03-30 格式:DOCX 页数:22 大小:660.88KB
下载 相关 举报
图像增强.docx_第1页
第1页 / 共22页
图像增强.docx_第2页
第2页 / 共22页
图像增强.docx_第3页
第3页 / 共22页
图像增强.docx_第4页
第4页 / 共22页
图像增强.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

图像增强.docx

《图像增强.docx》由会员分享,可在线阅读,更多相关《图像增强.docx(22页珍藏版)》请在冰豆网上搜索。

图像增强.docx

图像增强

1.灰度变换增强程序:

%GRAYTRANSFORM

clc;

I=imread('pout.tif');

imshow(I);

J=imadjust(I,[0.30.7],[01],1);%transformsthewaluesinthe%intensityimageItovalues

inJbylinealymappingvalues

%between0.3and0.7tovaluesbetween0and1.

figure;

imshow(J);

J=imadjust(I,[0.30.7],[01],0.5);%ifGAMMAislessthan1,the

%mappingsiweightedtowardhigher(brighter)outputvalues.

figure;

imshow(J);

J=imadjust(I,[0.30.7],[01],1.5);%ifGAMMAisgreaterthan

%1,themappingsiweightedtowardlower(darker)outputvalues.

figure;

imshow(J)J=imadjust(I,[0.30.7],[01],1);%IfTOP

%imageisreversed,asinaphotographicnegative.

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))axissquare

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.直方图均衡化程序举例

%HISTGRAMEAQUALIZATION

clc;

%Clearcommandwindow

I=imread('tire.tif');

%readstheimageintire.tifintoI

imshow(I);

%displaystheintensityimageIwith256graylevels

figure;

%createsanewfigurewindow

imhist(I);

%displaysahistogramfortheintensityimageI

J=histeq(I,64);%transformstheintensityimageI,returningJanintensity

figure;%imagewith64discretelevels

imshow(J);

figure;

imhist(J);

J=histeq(I,32);%transformstheintensityimage,returningin

%Janintensity

figure;%imagewith32discretelevels

imshow(J);

figure;

imhist(J);--------------------------------------------------------------------------------标题:

4.直方图规定化程序举例%HISTGRAMREGULIZATIONclc;%ClearcommandwindowI=imread('tire.tif');%readstheimageintire.tifintoIJ=histeq(I,32);%transformstheintensityimageI,returningin%Janintensityimagewith32discretelevels[counts,x]=imhist(J);%displaysahistogramfortheintensityimageIQ=imread('pout.tif');%readstheimageintire.tifintoIfigure;imshow(Q);figure;imhist(Q);M=histeq(Q,counts);%transformstheintensityimageQsothatthe%histogramoftheoutputimageMapproximatelymatchescountsfigure;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窗的邻域平均滤波图像')[attach]10316[/attach]--------------------------------------------------------------------------------2.中值滤波器MATLAB中的二维中值滤波函数medfit2来进行图像中椒盐躁声的去除%IMAGENOISEREDUCTIONWITHMEDIANFILTERclc;hood=3;%滤波窗口[I,map]=imread('eight.tif');imshow(I,map);noisy=imnoise(I,'salt&pepper',0.05);figure;imshow(noisy,map);filtered1=medfilt2(noisy,[hoodhood]);figure;imshow(filtered1,map);hood=5;filtered2=medfilt2(noisy,[hoodhood]);figure;imshow(filtered2,map);hood=7;filtered3=medfilt2(noisy,[hoodhood]);figure;imshow(filtered3,map);--------------------------------------------------------------------------------3.4邻域8邻域平均滤波算法%IMAGENOISEREDUCTIONWITHMEANALGORITHMclc;[I,map]=imread('eight.tif');noisy=imnoise(I,'salt&pepper',0.05);myfilt1=[010;111;010];%4邻域平均滤波模版myfilt1=myfilt1/9;%对模版归一化filtered1=filter2(myfilt1,noisy);imshow(filtered1,map);myfilt2=[111;111;111];myfilt2=myfilt2/9;filtered2=filter2(myfilt2,noisy);figure;imshow(filtered2,map);--------------------------------------------------------------------------------标题:

频域增强程序举例1.低通滤波器%LOWPASSFILTERclc;[I,map]=imread('eight.tif');noisy=imnoise(I,'gaussian',0.05);imshow(noisy,map);myfilt1=[111;111;111];myfilt1=myfilt1/9;filtered1=filter2(myfilt1,noisy);figure;imshow(filtered1,map);myfilt2=[111;121;111];myfilt2=myfilt2/10;filtered2=filter2(myfilt2,noisy);figure;imshow(filtered2,map);myfilt3=[121;242;121];myfilt3=filter2(myfilt3,noisy);figure;imshow(filtered3,map);--------------------------------------------------------------------------------2.布特沃斯低通滤波器图像实例I=imread('saturn.png');J=imnoise(I,'salt&pepper',0.02);subpolt(121),imshow(J)subplot(121),imshow(J)title('含噪声的原图像')%--08-7-18上午10:

37--%I=imread('saturn.png');J=imnoise(I,'salt&pepper',0.02);subpolt(121),imshow(J)subplot(121),imshow(J)title('含噪声的原图像')clc;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);fori=1:

M;forj=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);endendg=ifftshift(g);g=uint8(real(ifft2(g)));subplot(122),imshow(g)title('三阶Butterworth滤波图像')[attach]10321[/attach]--------------------------------------------------------------------------------标题:

4.色彩增强程序举例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('真彩色图像的蓝色分量')[attach]10322[/attach]2.伪彩色增强举例:

I=imread('cameraman.tif');imshow(I);X=grayslice(I,16);%thresholdstheintensityimageIusing%thresholdvalues1/16,2/16,…..,15/16,returninganindexed%imageinXfigure;imshow(X,hot(16));[attach]10325[/attach]--------------------------------------------------------------------------------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);[attach]10324[/attach]

 

 

灰度调整实现

 

悬赏分:

50|解决时间:

2009-1-618:

39|提问者:

zhang010206

matlab图像增强包括哪些啊,具体要怎么实现,最后能附上源码,先谢谢啦!

最佳答案

直方均衡,平滑,锐化A=imread('18.jpg');

B=rgb2gray(A);

figure,subplot(2,2,1),imshow(B);

subplot(2,2,2),imhist(B);

A1=imadjust(B,[0.20.5],[]);

subplot(2,2,3),imshow(A1);

subplot(2,2,4),imhist(A1);

C=imnoise(B,'salt&pepper');

h1=[0.10.10.1;0.10.20.1;0.10.10.1];

h2=1/4.*[121;242;121];

C1=filter2(h1,C);

C2=filter2(h2,C);

C3=medfilt2(C);

figure,subplot(2,2,1),imshow(C);

subplot(2,2,2),imshow(C1,[]);

subplot(2,2,3),imshow(C2,[]);

subplot(2,2,4),imshow(C3);

h=[0-10;-14-1;0-10];

D1=imfilter(B,h);

d2=fspecial('sobel');

D2=imfilter(B,d2);

D3=edge(B,'roberts',0.1);

figure,subplot(2,2,1),imshow(B);

subplot(2,2,2),imshow(D1);

subplot(2,2,3),imshow(D2,[]);

subplot(2,2,4),imshow(D3);

参考资料:

数字图像处理

图一:

进行直方图均衡化

clc

clearall

I=imread('girl.bmp');

j=rgb2gray(I);

figure

(1)

subplot(211)

imhist(j);

title('源图像直方图')

J=histeq(j);

subplot(212)读入图片后转为灰度图显示原图像直方图

imhist(J)

title('均衡化的直方图')

figure

(2)

subplot(121);

imshow(I)

title('源图像')s

ubplot(122);

imshow(J)

title('处理后的图像')

实验1一、点运算和直方图处理实验目的1.掌握利用Matlab图像工具箱显示直方图的方法2.掌握运用点操作进行图像处理的基本原理。

3.进一步理解利用点操作这一方法进行图像处理的特点。

4.掌握利用Matlab图像工具箱进行直方图均衡化的基本方法。

实验的硬件、二、实验的硬件、软件平台硬件:

计算机软件:

操作系统:

WINDOWS2000应用软件:

MATLAB三、实验内容及步骤1.了解Matlab图像工具箱的使用。

2.利用Matlab图像工具箱对图像进行点操作,要求完成下列3个题目中的至少2个。

⑴图1灰度范围偏小,且灰度偏低,改正之。

⑵图2暗处细节分辨不清,使其能看清楚。

⑶图3亮处细节分辨不清,使其能看清楚。

图1图2图33.给出处理前后图像的直方图。

4.利用MatLab图像处理工具箱中函数对以上图像进行直方图均衡化操作,观察结果。

四、思考题1.点操作能完成哪些图像增强功能?

2.直方图均衡化后直方图为何并不平坦?

为何灰度级会减少?

五、实验报告要求1.对点操作的原理进行说明。

2.给出程序清单和注释。

3.对处理过程和结果进行分析(包括对处理前后图像的直方图的分析)。

实验2图像平滑实验一、实验目的1.通过实验掌握图像去噪的基本方法;2.学会根据情况选用不同方法。

二、实验的硬件、软件平台实验的硬件、硬件:

计算机软件:

操作系统:

WINDOWS2000应用软件:

MATLAB三、实验内容及要求1.实验内容请在如下面方法中选择多个,完成图像去噪操作,并进行分析、比较。

(1)对静态场景的多幅图片取平均;

(2)空间域模板卷积(不同模板、不同尺寸);(3)频域低通滤波器(不同滤波器模型、不同截止频率);(4)中值滤波方法。

2.实验要求

(1)图片可根据需要选取;

(2)对不同方法和同一方法的不同参数的实验结果进行分析和比较,如空间域卷积模板可有高斯型模板、矩形模板、三角形模板和自己根据需求设计的模板等;模板大小可以是3×3,5×5,7×7或更大。

频域滤波可采用矩形或巴特沃斯等低通滤波器模型,截止频率也是可选的。

(3)分析比较不同方法的结果。

四、思考题1.不同空间域卷积器模板的滤波效果有何不同?

2.空间域卷积器模板的大小的滤波效果有何影响?

3.用多幅图像代数平均的方法去噪对图像有何要求?

4.不同频域滤波器的效果有何不同?

五、实验报告要求1.列出程序清单并进行功能注释;2.说明不同方法去噪效果;3.对去噪方法进行详细分析对比。

实验三一、实验目的图像的边缘检测1.进一步理解边沿检测的基本原理。

2.掌握对图像边沿检测的基本方法。

3.学习利用Matlab图像工具箱对图像进行边沿检测。

二、实验原理边缘检测在图像处理中可分为空域下的操作和频域下的操作。

本实验以空域下的操作为主要实验内容,其他方法同学们可以在课后自行实验。

空域下的图像边缘检测主要应用的是领域运算。

三、实验要求对边缘检测的要求:

使用Matlab图像处理工具箱中的不同方法对下图的边缘进行提取;注意观察不同操作对垂直方向、水平方向、斜方向的提取效果有何区别;注意观察提取后的边界是否连续,若不连续可采用什么方法使其连续。

四、实验步骤1.打开计算机,启动MATLAB程序;2.调入实验指导书所示的数字图像,利用MATLAB图像工具箱中已有函数进行编程以实现图像的边缘检测;3.显示原图和处理过的图像。

4.记录和整理实验报告五、实验仪器1.计算机;2.MATLAB程序;3.记录用的笔、纸。

六、实验报告要求1.对所使用的图像边沿检测方法的原理进行说明。

2.给出程序清单和注释。

3.对不同处理方法进行说明、比较。

附录:

附录:

Matlab图像处理简介一、Matlab运行环境简介1.启动Matlab可由下列方法之一进入Matlab命令行窗口:

(1)开始→程序→Matlab。

(2)双击桌面Matlab图标。

2.编制、运行Matlab程序可用下列方法之一编制和运行Matlab程序,建议使用第二种方法。

(1)命令行窗口中直接输入Matlab命令,按“回车”键后执行。

(2)选择菜单条中的“File→Open(或New)进入Matlab程序编辑器,在编辑器中编辑程序。

A.命令行以“,”或“;”结尾。

以“,”结尾运行时显示该命令运行结果,以“;”结尾不显示该命令运行结果。

B.注释前加“%”。

C.运行操作可使用命令快捷键。

二、图像文件的读、写和显示1.图像文件的读取读图像文件的函数格式:

A=imread(‘路径、文件名及文件后缀’),如I=imread(‘e:

\image.bmp’)其含义:

e盘中的bmp文件image赋给变量I,(windowsbitmap)将bmp为位图文件。

2.图像文件的写入写图像文件的函数格式:

imwrite(A,‘路径、文件名及文件后缀’),如imwrite(I,‘e:

\image.bmp’),其含义:

将图像变量I写入e盘中的bmp文件image。

3.图像显示图像显示的函数格式:

imshow(A,n)或imshow(A,[lowhigh])n为灰度级数,缺省值为256;[lowhigh]为灰度级范围,若不能确切地知道灰度级范围可缺省。

如imshow(I)其含义:

显示图像变量I。

若1次显示多幅图像,格式为:

subplot(总行数,总列数,第几幅),如subplot(3,2,3);imshow(A);其执行结果为在第2行第1列显示图像A。

4.图像文件有关信息的读取格式为:

info=imfinfo(‘路径、文件名及文件后缀’),如:

info=imfinfo(‘e:

\image.bmp’),该函数返回1个结构info,它反映了图像文件的诸如长、宽、灰度位数等参数信息。

5.真彩色图像转换为灰度图像真彩色图像转换为灰度图像的格式为:

A=rgb2gray(B)其含义:

将变量B表示的真彩色图像转换为灰度图像并赋给变量A,灰度图像可以为unit8[0,255]、unit16[0,65535])或double[0,1]类型,输出同输入。

三、图像的点操作方法、直方图及直方图调整1.图像直方图显示图

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 文学研究

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1