文档库 最新最全的文档下载
当前位置:文档库 › matlab图像处理函数

matlab图像处理函数

matlab图像处理函数
matlab图像处理函数

1、图像的变换

①fft2:fft2函数用于数字图像的二维傅立叶变换,如:i=imread('104_8.tif');

j=fft2(i);

②ifft2::ifft2函数用于数字图像的二维傅立叶反变换,如:

i=imread('104_8.tif');

j=fft2(i);

k=ifft2(j);

2、模拟噪声生成函数和预定义滤波器

①imnoise:用于对图像生成模拟噪声,如:

i=imread('104_8.tif');

j=imnoise(i,'gaussian',0,0.02);%模拟高斯噪声

②fspecial:用于产生预定义滤波器,如:

h=fspecial('sobel');%sobel水平边缘增强滤波器

h=fspecial('gaussian');%高斯低通滤波器

h=fspecial('laplacian');%拉普拉斯滤波器

h=fspecial('log');%高斯拉普拉斯(LoG)滤波器

h=fspecial('average');%均值滤波器

2、图像的增强

①直方图:imhist函数用于数字图像的直方图显示,如:

i=imread('104_8.tif');

imhist(i);

②直方图均化:histeq函数用于数字图像的直方图均化,如:

i=imread('104_8.tif');

j=histeq(i);

③对比度调整:imadjust函数用于数字图像的对比度调整,如:i=imread('104_8.tif'); j=imadjust(i,[0.3,0.7],[]);

④对数变换:log函数用于数字图像的对数变换,如:

i=imread('104_8.tif');

j=double(i);

k=log(j);

⑤基于卷积的图像滤波函数:filter2函数用于图像滤波,如:i=imread('104_8.tif');

h=[1,2,1;0,0,0;-1,-2,-1];

j=filter2(h,i);

⑥线性滤波:利用二维卷积conv2滤波, 如:

i=imread('104_8.tif');

h=[1,1,1;1,1,1;1,1,1];

h=h/9;

j=conv2(i,h);

⑦中值滤波:medfilt2函数用于图像的中值滤波,如:i=imread('104_8.tif');

j=medfilt2(i);

⑧锐化

(1)利用Sobel算子锐化图像, 如:

i=imread('104_8.tif');

h=[1,2,1;0,0,0;-1,-2,-1];%Sobel算子

j=filter2(h,i);

(2)利用拉氏算子锐化图像, 如:

i=imread('104_8.tif');

j=double(i);

h=[0,1,0;1,-4,0;0,1,0];%拉氏算子

k=conv2(j,h,'same');

m=j-k;

3、图像边缘检测

①sobel算子如:

i=imread('104_8.tif');

j = edge(i,'sobel',thresh)

②prewitt算子如:

i=imread('104_8.tif');

j = edge(i,'prewitt',thresh)

③roberts算子如:

i=imread('104_8.tif');

j = edge(i,'roberts',thresh)

④log算子如:

i=imread('104_8.tif');

j = edge(i,'log',thresh)

⑤canny算子如:

i=imread('104_8.tif');

j = edge(i,'canny',thresh)

⑥Zero-Cross算子如:

i=imread('104_8.tif');

j = edge(i,'zerocross',thresh)

4、形态学图像处理

①膨胀:是在二值化图像中“加长”或“变粗”的操作,函数imdilate执行膨胀运算,如:a=imread('104_7.tif'); %输入二值图像

b=[0 1 0;1 1 1;0 1 0];

c=imdilate(a,b);

②腐蚀:函数imerode执行腐蚀,如:

a=imread('104_7.tif'); %输入二值图像

b=strel('disk',1);

c=imerode(a,b);

③开运算:先腐蚀后膨胀称为开运算,用imopen来实现,如:

a=imread('104_8.tif');

b=strel('square',2);

c=imopen(a,b);

④闭运算:先膨胀后腐蚀称为闭运算,用imclose来实现,如:

a=imread('104_8.tif');

b=strel('square',2);

c=imclose(a,b);

Matlab 图像处理相关函数命令大全

一、通用函数:

colorbar 显示彩色条

语法:colorbar \ colorbar('vert') \ colorbar('horiz') \ colorbar(h) \ h=colorbar(...) \ colorbar(...,'peer',axes_handle)

getimage 从坐标轴取得图像数据

语法:A=getimage(h) \ [x,y,A]=getimage(h) \ [...,A,flag]=getimage(h) \ [...]=getimage

imshow 显示图像

语法:imshow(I,n) \ imshow(I,[low high]) \ imshow(BW) \ imshow(X,map) \ imshow(RGB)\ imshow(...,display_option) \ imshow(x,y,A,...) \ imshow filename \ h=imshow(...)

montage 在矩形框中同时显示多幅图像

语法:montage(I) \ montage(BW) \ montage(X,map) \ montage(RGB) \ h=montage(...)

immovie 创建多帧索引图的电影动画

语法:mov=immovie(X,map) \ mov=immovie(RGB)

subimage 在一副图中显示多个图像

语法:subimage(X,map) \ subimage(I) \ subimage(BW) \ subimage(RGB) \ subimage(x,y,...) \ subimage(...)

truesize 调整图像显示尺寸

语法:truesize(fig,[mrows mcols]) \ truesize(fig)

warp 将图像显示到纹理映射表面

语法:warp(X,map) \ warp(I ,n) \ warp(z,...) warp(x,y,z,...) \ h=warp(...)

zoom 缩放图像

语法:zoom on \ zoom off \ zoom out \ zoom reset \ zoom \ zoom xon \ zoom yon\ zoom(factor) \ zoom(fig,option)

二、图像文件I/O函数命令

imfinfo 返回图形图像文件信息

语法:info=imfinfo(filename,fmt) \ info=imfinfo(filename)

imread 从图像文件中读取(载入)图像

语法:A=imread(filename,fmt) \ [X,map]=imread(filename,fmt) \ [...]=imread(filename) \ [...]=imread(URL,...) \ [...]=imread(...,idx) (CUR,ICO,and TIFF only) \

[...]=imread(...,'frames',idx) (GIF only) \ [...]=imread(...,ref) (HDF only) \

[...]=imread(...,'BackgroundColor',BG) (PNG only) \ [A,map,alpha] =imread(...) (ICO,CUR,PNG only)

imwrite 把图像写入(保存)图像文件中

语法:imwrite(A,filename,fmt) \ imwrite(X,map,filename,fmt) \ imwrite(...,filename) \ imwite(...,Param1,Val1,Param2,Val2...)

imcrop 剪切图像

语法:I2=imcrop(I) \ X2=imcrop(X,map) \ RGB2=imcrop(RGB) \ I2=imcrop(I,rect) \

X2=imcrop(RGB,rect) \ [...]=imcrop(x,y,...) \ [A,rect]=imcrop(...) \

[x,y,A,rect]=imcrop(...)

imresize 改变图像大小

语法:B=imresize(A,m,method)

imrotate 旋转图像

语法:B=imrotate(A,angle,method) \ B=imrotate(A,angle,method,'crop')

三、像素和统计处理函数

corr2 计算两个矩形的二维相关系数

语法:r=corr2(A,B)

imcontour 创建图像数据的轮廓图

语法:imcontour(I,n) \ imcontour(I,v) \ imcontour(x,y,...) \ imcontour(...,LineSpec) \ [C,h] =imcontour(...)

imfeature 计算图像区域的特征尺寸

语法:stats=imfeature(L,measurements) \ stats=imfeature(L,measurements,n)

imbist 显示图像数据的柱状图

impixel 确定像素颜色值

语法:P=impixel(I) \ P=impixel(X,map) \ P=impixel(RGB) \ P=impixel(I,c,r) \

P=impixel(X,map,c,r) \ P=impixel(RGB,c,r) \ [c,r,P]=impixel(...) \ P=impixel(x,y,I,xi,y i) \ P=impixel(x,y,RGB,xi,yi) \ P=impixel(x,y,X,map,xi,yi) \

[xi,yi,P]=impixel(x,y,...)

improfile 沿线段计算剖面图的像素值

语法:c=improfile \ c=improfile(n) \ c=improfile(I,xi,yi) \ c=improfile(I,x i,yi,n)

\ [cx,cy,c]=improfile(...) \ [cx,cy,c,xi,yi]=improfile(...) \ [...]=improfile(x,y,I,xi,yi)

\ [...]=improfile(x,y,I,xi,yi,n) \ [...]=improfile(...,method)

mean2 计算矩阵元素的平均值

语法:B=mean2(A)

pixval 显示图像像素信息

语法:pixval on

std2 计算矩阵元素的标准偏移

语法:b=std2(A)

四、图像分析函数:

edge 图像边缘检测

语法:BW=edge(I,'sobel') \ BW=edge(I,'sobel',thresh) \

BW=edge(I,'sobel',thresh,direction) \ [BW,thresh]=edge(I,'sobel',...) \

BW=edge(I,'prewitt') \ BW=edge(I,'prewitt',thresh) \

BW=edge(I,'prewitt',thresh,direction) \

[BW,thresh]=edge(I,'prewitt',...) \ BW=edge(I,'roberts') \ BW=edge(I,'roberts',thresh) \ [BW,thresh]=edge(I,'roberts',...) \ BW=edge(I,'log') \ BW=edge(I,'log',thresh) \

BW=edge(I,'log',thresh,sigma) \ [BW,threshold]=edge(I,'log',...) \

BW=edge(I,'zerocross',thresh,h) \ [BW,thresh]=edge(I,'zerocross',...) \

BW=edge(I,'canny') \ BW=edge(I,'canny',thresh) \ BW=edge(I,'canny',thresh,sigma) \ [BW,threshold]=edge(I,'canny',...)

qtgetblk 获取四叉树分解的块值

语法:[vals,r,c]=qtgetblk(I,S,dim) \ [vals,idx]=qtgetblk(I,S,dim)

qtsetblk 设置四叉树分解中的块值

语法:J=qtsetblk(I,S,dim,vals)

五、图像增强函数

histeq 用柱状图均等化增强对比

语法:J=histeq(I,hgram) \ J=histeq(I,n) \ [J,T]=histeq(I,...) \

newmap=histeq(X,map,hgram) \ newmap=histeq(X,map)

imadjust 调整图像灰度值或颜色映像表

语法:J=imadjust(I,[low_in ,high_in]),[low_out ,high_out],gamma) \

newmap=imadjust(map,[low_in ,high_in]),[low_out ,high_out],gamma) \

RGB2=imadjust(RGB1,...)

imnoise 增强图像的渲染效果

语法:J=imnoise(I,type) \ J=imnoise(I,type,parameters)

medfilt2 进行二维中值过滤

语法:B=medfilt2(A,[m n]) \ B=medfilt2(A) \ B=medfilt2(A,'indexed',...)

ordfilt2 进行二维统计顺序过滤

语法:B=ordfilt2(A,order,domain) \ B=ordfilt2(A,order,domain,S) \ B=ordfilt2(...,padopt)

wiener2 进行二维适应性去噪过滤处理

语法:J=wiener2(I,[m n],noise) \ [J,noise]=wiener2(I,[m n])

六、线性滤波函数

conv2 进行二维卷积操作

语法:C=conv2(A,B) \ C=conv2(hcol,hrow,A) \ C=conv2(...,'shape')

convmtx2 计算二维卷积矩阵

语法:T=convmtx2(H,m,n) \ T=convmtx2(H,[m n])

convn 计算n维卷积

语法:C=convn(A,B) \ C=convn(A,B,'shape')

filter2 进行二维线性过滤操作

语法:Y=filter2(h,X) \ Y=filter2(h,X,shape)

fspecial 创建预定义过滤器

语法:h=fspecial(type) \ h=fspecial(type,parameters)

七、线性二维滤波设计函数

freqspace 确定二维频率响应的频率空间

语法:[f1,f2]=freqspace(n) \ [f1,f2]=freqspace([m n]) \ [x1 ,y1]=freqspace(...,'meshgrid') \ f=freqspace(N) \ f=freqspace(N,'whole')

freqz2 计算二维频率响应

语法:[H,f1,f2]=freqz2(h,n1,n2) \ [H,fi,f2]]=freqz2(h,[n2,n1]) \ [H,fi,f2]]=freqz2(h,f1,f2]) \ [H,fi,f2]]=freqz2(h) \ [...]=freqz2(h,...,[dx dy]) \ [...]=freqz2(h,...,dx) \ freqz2(...)

fsamp2 用频率采样法设计二维FIR过滤器

语法:h=fsamp2(Hd) \ h=fsamp2(f1,f2,Hd,[m n])

ftrans2 通过频率转换设计二维FIR过滤器

语法:h=ftrans2(b,t) \ h=ftrans2(b)

fwind1 用一维窗口方法设计二维FIR过滤器

语法:h=fwind1(Hd,win) \ h=fwind1(Hd,win1,win2) \ h=fwind1(f1,f2,Hd,...)

fwind2 用二维窗口方法设计二维FIR过滤器

语法:h=fwind2(Hd,win) \ h=fwind2(f1,f2,Hd,win)

八、图像变换函数

dct2 进行二维离散余弦变换(反余弦变换用idct2)

语法:B=dct2(A) \ B=dct2(A,m.n) \ B=dct2(A,[m n])

dctmtx 计算离散余弦傅立叶变换

语法:D=dctmtx(n)

fft2 进行二维快速傅立叶变换(反变换用ifft2)

语法:Y=fft2(X) \ Y=fft2(X,m,n)

fftn 进行n维快速傅立叶变换(反变换用ifftn)

语法:Y=ffn(X) \ Y=fftn(X,siz)

fftshift 快速傅立叶变换的DC组件移到光谱中心

语法:Y=fftshift(X) \ Y=fftshift(X,dim)

iradon 进行反radon变换

语法:I=iradon(P,theta) \ I=iradon(P,theta,interp,filter,d,n) \ [I,h]=iradon(...)

phantom 产生一个头部幻影图像

语法:P=phantom(def,n) \ P=phantom(E,n) \ [P,E]=phantom(...)

radon 计算radon变换

语法:R=radon(I,theta) \ [R,xp]=radon(...)

九、边沿和块处理函数

bestblk 确定进行块操作的块大小

语法:siz=bestblk([m n],k) \ [mb,nb]=bestblk([m n],k)

blkproc 实现图像的显示块操作

语法:B=blkproc(A,[m n]),fun) \ B=blkproc(A,[m n],fun,P1,P2,...) \ B=blkproc(A,[m n],[mborder nborder],fun,...)

col2im 将矩阵的列重新组织到块中

语法:A=col2im(B,[m n],[mm nn],block_type) \ A=col2im(B,[m n],[mm nn])

colfilt 利用列相关函数进行边沿操作

语法:B=colfilt(A,[m n],block_type,fun) \ B=colfilt(A,[m n],block_type,fun,P1,P2,...) \

B=colfilt(A,[m n],[mblock nblock],...) \ B=colfilt(A,'indexed',...)

im2col 重调图像块为列

语法:B=im2col(A,[m n],block_type) \ B=im2col(A,[m n]) \ B=im2col(A,'indexed',...)

nlfilter 进行边沿操作

语法:B=nlfilter(A,[m n],fun) \ B=nlfilter(A,[m n],fun,P1,P2,...) \ B=nlfilter(A,'indexed',...)

十、二进制图像操作函数

applylut 在二进制图像中利用lookup表进行行边沿操作

语法:A=applylut(BW,LUT)

bwarea 计算二进制图像对象的面积

语法:total=bwarea(BW)

bweuler 计算二进制图像的欧拉数

语法:eul=bweuler(BW)

bwfill 填充二进制图像的背景色

语法:BW2=bwfill(BW1,c,r,n) \ BW2=bwfill(BW1,n) \ [BW2,idx]=bwfill(...) \

BW2=bwfill(x,y,BW1,xi,yi,n) \ [x,y,BW2,idx,xi,yi]=bwfill(...)

\ [BW2,idx]=bwfill(BW1,'holes',n)

bwlabel 标注二进制图像中已连接的部分

语法:L=bwlabel(BW,n) \ [L,num]=bwlabel(BW,n)

bwmorph 提取二进制图像的轮廓

语法:BW2=bwmorph(BW1,operation) \ BW2=bwmorph(BW1,operation,n)

bwperim 计算二进制图像中对象的周长

语法:BW2=bwperim(BW1) \ BW2=bwperim(BW1,CONN)

bwselect 在二进制图像中选择对象

语法:BW2=bwselect(BW1,c,r,n) \ BW2=bwselect(BW1,n) \ [BW2,idx]=bwselect(...) \ BW2=bwselect(x,y,BW1,xi,yi,n) \ [x,y,BW2,idx,xi,yi]=bwselect(...)

dilate 放大二进制图像

语法:BW2=dilate(BW1,SE) \ BW2=dilate(BW1,SE,alg) \ BW2=dilate(BW1,SE,...,n)

erode 弱化二进制图像的边界

语法:BW2=erode(BW1,SE) \ BW2=erode(BW1,SE,alg) \ BW2=erode(BW1,SE,...,n)

makelut 创建一个用于applylut函数的lookup表

语法:lut=makelut(fun,n) \ lut=makelut(fun,n,P1,P2,...)

十一、区域处理函数

roicolor 选择感兴趣的颜色区

语法:BW=roicolor(A,low,high) \ BW=rocicolor(A,v)

roifill 在图像的任意区域中进行平滑插补

语法:J=roifill(I,c,r) \ J=roifill(I) \ J=roifill(I,BW) \ [J,BW]=roifill(...) \ J=roifill(x,y,I,xi,yi) \ [x,y,J,BW,xi,yi]=roifill(...)

roifilt2 过滤敏感区域

语法:J=roifilt2(h,I,BW) \ J=roifilt2(I,BW,fun) \ J=roifilt2(I,BW,fun,P1,P2,...)

roipoly 选择一个敏感的多边形区域

语法:BW=roipoly(I,c,r) \ BW=roipoly(I) \ BW=roipoly(x,y,I,xi,y i) \ [BW,xi,yi]=roipoly(...) \ [x,y,BW,xi,yi]=roipoly(...)

十二、颜色映像处理函数

brighten 增加或降低颜色映像表的亮度

语法:brighten(beta) \ brighten(h,beta) \ newmap=brighten(beta) \

newmap=brighten(cmap,beta)

cmpermute 调整颜色映像表中的颜色

语法:[Y,newmap]=cmpermute(X,map) \ [Y,newmap]=cmpermute(X,map,index)

cmunigue 查找颜色映像表中特定的颜色及相应的图像

语法:[Y,newmap]=cmunigue(X,map) \ [Y,newmap]=cmunigue(RGB) \

[Y,newmap]=cmunique(I)

imapprox 对索引图像进行近似处理

语法:[Y,newmap]=imapprox(X,map,n) \ [Y,newmap]=imapprox(X,map,tol) \

Y=imapprox(X,map,newmap) \ [...]=imapprox(...,dither_option)

rgbplot 划分颜色映像表

语法:rgbplot(cmap)

十三、颜色空间转换函数

hsv2rgb 转换HSV值为RGB颜色空间:M=hsv2rgb(H)

ntsc2rgb 转换NTSC值为RGB颜色空间:rgbmap=ntsc2rgb(yiqmap) \ RGB=ntsc2rgb(YIQ) rgb2hsv 转换RGB值为HSV颜色空间:cmap=rgb2hsv(M)

rgb2ntsc 转换RGB值为NTSC颜色空间:yiqmap=rgb2ntsc(rgbmap) \ YIQ=rgb2ntsc(RGB) rgb2ycbcr 转换RGB值为YCbCr颜色空间:ycbcrmap=rgb2ycbcr(rgbmap) \

YCBCR=rgb2ycbcr(RGB)

ycbcr2rgb 转化YCbCr值为RGB颜色空间:rgbmap=ycbcr2rgb(ycbcrmap) \

RGB=ycbcr2rgb(YCBCR)

十四、图像类型和类型转换函数

dither 通过抖动增加外观颜色分辨率转换图像

语法:X=dither(RGB,map) \ BW=dither(I)

gray2ind 转换灰度图像为索引图像

语法:[X,map]=gray2ind(I,n) \ [X,map]=gray2ind(BW,n)

grayslice 从灰度图像为索引图像

语法:X=grayslice(I,n) \ X=grayslice(I,v)

im2bw 转换图像为二进制图像

语法:BW=im2bw(I,level) \ BW=im2bw(X,map,level) \ BW=im2bw(RGB,level)

im2double 转换图像矩阵为双精度型

语法:I2=im2double(I1) \ RGB2=im2double(RGB1) \ I=im2double(BW) \

X2=im2double(X1,'indexed')

double 转换数据为双精度型

语法:double(X)

unit8 、unit16转换数据为8位、16位无符号整型:i=unit8(x) \ i=unit16(x) im2unit8 转换图像阵列为8位无符号整型

语法:I2=im2unit8(I1) \ RGB2=im2unit8(RGB1) \ I=im2unit8(BW) \

X2=im2unit8(X1,'indexed')

im2unit16 转换图像阵列为16位无符号整型

语法:I2=im2unit16(I1) \ RGB2=im2unit16(RGB1) \ I=im2unit16(BW) \

X2=im2unit16(X1,'indexed')

ind2gray 把检索图像转化为灰度图像

语法:I=ind2gray(X,map)

ind2rgb 转化索引图像为RGB真彩图像

语法:RGB=ind2rgb(X,map)

isbw 判断是否为二进制图像

语法:flag=isbw(A)

isgray 判断是否为灰度图像

语法:flag=isgray(A)

isind 判断是否为索引图像

语法:flag=isind(A)

isrgb 判断是否为RGB真彩色图像

语法:flag=isrgb(A)

mat2gray 转换矩阵为灰度图像

语法:I=mat2gray(A,[amin amax]) \ I=mat2gray(A)

rgb2gray 转换RGB图像或颜色映像表为灰度图像

语法:I=rgb2gray(RGB) \ newmap=rgb2gray(map)

rgb2ind 转换RGB图像为索引图像

语法:[X,map]=rgb2ind(RGB,tol) \ [X,map]=rgb2ind(RGB,n) \ X=rgb2ind(RGB,map) \ [...]=rgb2ind(...,dither_option)

十五、新增图像处理工具箱函数

adapthisteq 限制对比度直方图均衡化: J=adapthisteq(I) \

J=adapthisteq(I,param1,val1,param2,val2...)

applycform 用于颜色空间变换out=applyform(I,C)

bwboundaries 描绘二进制图像边界

语法:B=bwboundaries(BW) \ B=bwboundaries(BW,CONN) \

B=bwboundaries(BW,CONN,options) [BW,CONN,options] \ [BL]=bwboundaries(...) \ [BLNA]=bwboundaries()

bwtraceboundary 描述二进制图像中的物体

B=bwtraceboundary(BW,P,fstep) \ B=bwtraceboundary(BW,P,fstep,CONN) \

B=bwtraceboundary(...N,dir)

decorrstrech 对多通道图像进行去相关处理

语法:S=decorrstretch(I) \ S=decorrstretch(I,TOL)

dicomdict 获取或读取DICOM文件

语法:dicomdict('set',dictionary) \ dictionary=dicomdict('get')

getline 用鼠标选择ployline

语法:[x,y]=getline(fig) \ [x,y]=getline(ax) \ [x,y]=getline \ [x,y]=getline(...,'closed') getpts 用鼠标选择像素点

语法:[x,y]=getpts(fig) \ [x,y]=getpts(ax) \ [x,y]=getpts

getrect 用鼠标选择矩阵

语法:rect=getrect(fig) \ rect=getrect(ax) \ rect=getrect(fig)

iccread 读取ICC剖面

语法:P=iccread(filename)

im2java2d 将图像转换为Java缓冲图像

语法:jimage=im2java2d(I) \ jimage=im2java2d(X,MAP)

imview 在图像与蓝旗中显示图像

语法:imview(I) \ imview(RGB) \ imview(X,map) \imview(I,range) \ imview(filename) \ imview(....'InitialMagnification',initial_mag) \ h=imv iew(...) \ imview close all

ippl 检查IPPL的存在

语法:TF=ippl \ [TF B]=ippl

iptdemos 显示图像处理工具箱中的索引图像

lab2double、lab2unit16、lab2unit8 将L*a*b数据分别转换为双精度、16位数据、8位数据

makecform 创造一个色彩转换结构

poly2mask 把多边形区域转换成mask区域

语法:BW=poly2mask(x,y,m,n)

unitlut 查找表中A像素值

语法:B=unitlut(A,LUT)

xyz2double、xyz2unit16 将颜色数据从XYZ转换到双精度、16进制。

语法:xyzd=xyz2double(XYZ) \ xyz16=xyz2unit16(xyz)

matlab图像处理的几个实例

Matlab图像处理的几个实例(初学者用) 1.图像的基本信息及其加减乘除 clear,clc; P=imread('yjx.jpg'); whos P Q=imread('dt.jpg'); P=im2double(P); Q=im2double(Q); gg1=im2bw(P,0.3); gg2=im2bw(P,0.5); gg3=im2bw(P,0.8); K=imadd(gg1,gg2); L=imsubtract(gg2,gg3); cf=immultiply(P,Q); sf=imdivide(Q,P); subplot(421),imshow(P),title('郁金香原图'); subplot(422),imshow(gg1),title('0.3'); subplot(423),imshow(gg2),title('0.5'); subplot(424),imshow(gg3),title('0.8'); subplot(425),imshow(K),title('0.3+0.5'); subplot(426),imshow(L),title('0.5-0.3'); subplot(427),imshow(cf),title('P*Q'); subplot(428),imshow(sf),title('P/Q'); 2.图像缩放 clear,clc; I=imread('dt.jpg'); A=imresize(I,0.1,'nearest'); B=imresize(I,0.4,'bilinear'); C=imresize(I,0.7,'bicubic'); D=imresize(I,[100,200]); F=imresize(I,[400,100]); figure subplot(321),imshow(I),title('原图'); subplot(322),imshow(A),title('最邻近插值'); subplot(323),imshow(B),title('双线性插值'); subplot(324),imshow(C),title('二次立方插值'); subplot(325),imshow(D),title('水平缩放与垂直缩放比例为2:1'); subplot(326),imshow(F),title('水平缩放与垂直缩放比例为1:4');

基于MATLAB平台的可视化图像处理系统设计方法

[收稿日期]20050228 [作者简介]黄书先(1962),女,1983年大学毕业,硕士,副教授,现主要从事石油勘探开发研究与科研管理工作。 基于MATLAB 平台的可视化图像处理系统 设计方法 黄书先 (长江大学科学技术处,湖北荆州434023) [摘要]以MATLAB 为工作语言和开发环境,开发了一个在M AT LAB 平台下的可视化图像处理系统, 可实现包括对测井图像在内的一般图像的精细处理,并能和用户开发的程序接口。为M AT LAB 的再开发 和可视化系统的设计作了有益的探索。 [关键词]MATLAB;图像处理;可视化GUI 界面 [中图分类号]TP 311111 [文献标识码]A [文章编号]16731409(2005)04015803 MAT LAB 的图像处理工具为自然科学各学科领域的学者、研究人员和工程师提供了一个直观的灵活的环境,用以解决复杂的图像处理问题。用MAT LAB 语言开发的图像处理算法可以在所有支持MAT LAB 的平台上共享。也可以将m 语言算法和现存的C 程序集成在一起或者将MATLAB 开发的m 语言算法和GU Is 编译为C/C++代码,供其他程序调用,或者发布为一个独立的应用程序。下面笔者提出一个基于MATLAB 平台的可视化图像处理系统设计方法,可用于包括测井图像资料在内的一般图像的精细处理。 1 系统总体设计 在MAT LAB 中有个重要的图像处理工具包[1],该工具包是由一系列支持图像处理操作的函数组成的,按功能可以分为以下几类:图像显示;图像文件输入与输出;几何操作;像素值统计;图像增强;图像识别;图像滤波;图像变换;邻域和块操作;二值图像操作;颜色映射和颜色空间转换;图像格式转换等。和其他工具包一样,用户还可以根据需要书写自己的函数,以满足特定的需要;也可以将这个工具包和信号处理工具包或小波工具包等其他工具包联合起来使用。 MAT LAB 提供了交互式的GU I 开发环境[2~4],用户只需要设置各个对象相应的属性,系统自动生成与之对应的界面,大大减少了开发的难度。本设计的MAT LAB 图像处理系统由封面、主界面和各个子功能界面组成,其框图如图1所示。程序总流程图如图2所示。 2 封面界面设计 首先用MAT LAB 编辑封面的脚本文件,生成系统的封面界面,然后再进入处理的主界面。 在设计封面时,要做好封面的总体布局,力求完美。要插入背景,首先要找到所用的函数(这在一般的书中很难找到);其次要注意设置axes 的属性。在显示背景图像时,不能用imshow ()函数,如果用此函数,背景图像只能显示在封面的一部分,不能整屏覆盖;而要用imagesc ()函数。MATLAB 提供修改文本中文字的字体,它支持华文中宋、华文彩云、华文仿宋、楷书、黑体等,功能较强。 在设计封面的过程中,最主要的技术是要解决时间的显示,如果只用MATLAB 中的clock ()函数,则显示的是静态时间,而不会显示和电脑同步的动态时间。为了解决这个问题,需做一个循环判断语句:while find (get (0,'c hildren'))==h0。成立的条件是,只要是当前窗口循环,否则停止,这样可以减少CPU 的负担。同时,要实时提取clock ()函数,可用fix (clock),使提取的时间更美观。#158#长江大学学报(自科版)2005年4月第2卷第4期/理工卷第2卷第2期 Jour nal of Yangtze University (Nat Sci Edit)Apr 12005Vol 12No 14/Sci &Eng V,Vol 12No 12

基于MATLAB图像处理报告

基于M A T L A B图像处理报告一、设计题目 图片叠加。 二、设计要求 将一幅礼花图片和一幅夜景图片做叠加运算,使达到烟花夜景的美图效果。 三、设计方案 、设计思路 利用matlab强大的图像处理功能,通过编写程序,实现对两幅图片的像素进行线性运算,利用灰度变换的算法使图片达到预期的效果。 、软件介绍 MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。 MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB 也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户直接进行下载就可以用。

基于Matlab基本图像处理程序

图像读入 ●从图形文件中读入图像 imread Syntax: A = imread(filename, fmt) filename:指定的灰度或彩色图像文件的完整路径和文件名。 fmt:指定图形文件的格式所对应的标准扩展名。如果imread没有找到filename所制定的文件,会尝试查找一个名为filename.fmt的文件。 A:包含图像矩阵的矩阵。对于灰度图像,它是一个M行N列的矩阵。如果文件包含 RGB真彩图像,则是m*n*3的矩阵。 ●对于索引图像,格式[X, map] = imread(filename, fmt) X:图像数据矩阵。 MAP:颜色索引表 图像的显示 ●imshow函数:显示工作区或图像文件中的图像 ●Syntax: imshow(I) %I是要现实的灰度图像矩阵 imshow(I,[low high],param1, val1, param2, val2,...) %I是要现实的灰度图像矩阵,指定要显示的灰度范围,后面的参数指定显示图像的特定参数 imshow(RGB) imshow(BW) imshow(X,map) %map颜色索引表 imshow(filename) himage = imshow(...) ●操作:读取并显示图像 I=imread('C:\Users\fanjinfei\Desktop\baby.bmp');%读取图像数据 imshow(I);%显示原图像 图像增强 一.图像的全局描述 直方图(Histogram):是一种对数据分布情况的图形表示,是一种二维统计图表,它的两个坐标分别是统计样本和该样本对应的某个属性的度量。 图像直方图(Image Histogram):是表示数字图像中亮度分布的直方图,用来描述图象灰度值,标绘了图像中每个亮度值的像素数。 灰度直方图:是灰度级的函数,它表示图像中具有某种灰度级的像素的个数,反映了图 像中某种灰度出现的频率。描述了一幅图像的灰度级统计信息。是一个二维图,横坐标为图像中各个像素点的灰度级别,纵坐标表示具有各个灰度级别的像素在图像中出现的次数或概率。 归一化直方图:直接反应不同灰度级出现的比率。纵坐标表示具有各个灰度级别的像

非常全非常详细的MATLAB数字图像处理技术

MATLAB数字图像处理 1 概述 BW=dither(I)灰度转成二值图; X=dither(RGB,map)RGB转成灰度图,用户需要提供一个Colormap; [X,map]=gray2ind(I,n)灰度到索引; [X,map]=gray2ind(BW,n)二值图到索引,map可由gray(n)产生。灰度图n默认64,二值图默认2; X=graylice(I,n)灰度图到索引图,门限1/n,2/n,…,(n-1)/n,X=graylice(I,v)给定门限向量v; BW=im2bw(I,level)灰度图I到二值图; BW=im2bw(X,map,level)索引图X到二值图;level是阈值门限,超过像素为1,其余置0,level在[0,1]之间。 BW=im2bw(RGB,level)RGB到二值图; I=ind2gray(X,map)索引图到灰度图; RGB=ind2rgb(X,map)索引图到RGB; I=rgb2gray(RGB)RGB到灰度图。 2 图像运算 2.1 图像的读写 MATLAB支持的图像格式有bmp,gif,ico,jpg,png,cur,pcx,xwd和tif。 读取(imread): [1] A=imread(filename,fmt) [2] [X,map]=imread(filename,fmt) [3] […]=imread(filename) [4] […]=imread(URL,…) 说明:filename是图像文件名,如果不在搜索路径下应是图像的全路径,fmt是图像文件扩展名字符串。前者可读入二值图、灰度图、彩图(主要是RGB);第二个读入索引图,map 为索引图对应的Colormap,即其相关联的颜色映射表,若不是索引图则map为空。URL表示引自Internet URL中的图像。 写入(imwrite): [1] R=imwrite(A,filename,fmt); [2] R=imwrite(X,map,filename,fmt); [3] R=imwrite(…,filename); [4] R=imwrite(…,Param1,V al1,Param2,Val2) 说明:针对第四个,该语句用于指定HDF,JPEG,PBM,PGM,PNG,PPM,TIFF等类型输出文件的不同参数。例如HDF的Quality,Compression,WriteMode;JPEG的BitDepth,Comment:Empty or not,Mode:lossy or lossless,Quality等。 2.2 图像的显示 方法1:使用Image Viewer(图像浏览器),即运用imview函数。 同时显示多帧图像的所有帧,可用到montage函数。

基于MATLAB的图像处理

课程设计任务书 学生姓名:专业班级: 指导教师:工作单位: 题目: 基于MATLAB的图像滤波设计 初始条件:1.MATLAB软件 2.滤波器处理相关函数 要求完成的主要任务: (1)读入图像并分别加入高斯噪声、椒盐噪声和乘性噪声,并比较结果。 (2)设计巴特沃斯低通滤波对图像进行低通滤波处理,显示结果。 (3)设计高斯高通滤波器对图像进行处理,显示结果。 (4)采用维纳滤波和中值滤波对图像进行处理,显示结果 参考书: 1.《信号与系统》第一版刘泉江雪梅主编高等教育出版社 2.《数字图像处理》MATLAB版冈萨雷斯主编电子工业出版社 时间安排: 第15周:任务安排、分组 第16周:理论设计及仿真 第18周:撰写设计报告及答辩 指导教师签名:年月日系主任(或责任教师)签名:年月日

摘要 (3) 1.MATLAB简介 (5) 1.1 MATLAB的概况 (5) 1.2 MATLAB产生的历史背景 (5) 2.编程及运行结果 (7) 2.1常见基本运算 (7) 2.1.1极限的计算 (7) 2.1.2微分的计算 (7) 2.1.3积分的计算 (8) 2.1.4级数的计算 (9) 2.1.5求解代数方程 (10) 2.1.6求解常微分方程 (10) 2.2 矩阵基本计算 (11) 2.2.1矩阵的最大值 (11) 2.2.2矩阵的最小值 (11) 2.2.3矩阵的均值 (12) 2.2.4矩阵的方差 (13) 2.2.5矩阵的转置 (13) 2.2.6矩阵的逆 (14) 2.2.7矩阵的行列式 (15) 2.2.8矩阵的特征值计算 (15) 2.2.9矩阵的相乘 (16) 2.2.10矩阵的右除和左除 (17) 2.2.11矩阵的幂运算 (18) 2.3 多项式基本计算 (18) 2.3.1多项式加减运算 (18) 2.3.2多项式乘除运算 (19) 2.3.3多项式求导 (20) 2.3.4求根和求值运算 (20) 2.3.5多项式的部分分式展开 (21) 2.3.6多项式的拟合 (22) 2.3.7插值运算 (23) 3.基于MATLAB的图像滤波设计 (25) 3.1读入图像并分别加入高斯噪声、椒盐噪声和乘性噪声,并比较结果 (25) 3.2设计巴特沃斯低通滤波对图像进行低通滤波处理,显示结果 (29) 3.2.1叠加椒盐噪声的巴特沃斯低通滤波 (29) 3.2.2叠加高斯噪声的巴特沃斯低通滤波 (31) 3.2.3叠加乘性噪声的巴特沃斯低通滤波 (32) 3.3用MATLAB实现高斯高通滤波器对图像的处理 (33) 3.4维纳滤波和中值滤波对图像进行处理 (35) 4.总结 (38) 参考文献 (39)

MATLAB图像处理相关函数

一、通用函数: colorbar显示彩色条 语法:colorbar \ colorbar('vert') \ colorbar('horiz') \ colorbar(h) \ h=colorbar(...) \ colorbar(...,'peer',axes_handle) getimage 从坐标轴取得图像数据 语法:A=getimage(h) \ [x,y,A]=getimage(h) \ [...,A,flag]=getimage(h) \ [...]=getimage imshow 显示图像 语法:imshow(I,n) \ imshow(I,[low high]) \ imshow(BW) \ imshow(X,map) \ imshow(RGB)\ imshow(...,display_option) \ imshow(x,y,A,...) \ imshow filename \ h=imshow(...) montage 在矩形框中同时显示多幅图像 语法:montage(I) \ montage(BW) \ montage(X,map) \ montage(RGB) \ h=montage(...) immovie 创建多帧索引图的电影动画 语法:mov=immovie(X,map) \ mov=immovie(RGB) subimage 在一副图中显示多个图像 语法:subimage(X,map) \ subimage(I) \ subimage(BW) \ subimage(RGB) \ subimage(x,y,...) \ subimage(...) truesize 调整图像显示尺寸 语法:truesize(fig,[mrows mcols]) \ truesize(fig) warp 将图像显示到纹理映射表面 语法:warp(X,map) \ warp(I ,n) \ warp(z,...) warp(x,y,z,...) \ h=warp(...) zoom 缩放图像 语法:zoom on \ zoom off \ zoom out \ zoom reset \ zoom \ zoom xon \ zoom yon\ zoom(factor) \ zoom(fig,option) 二、图像文件I/O函数命令 imfinfo 返回图形图像文件信息 语法:info=imfinfo(filename,fmt) \ info=imfinfo(filename) imread 从图像文件中读取(载入)图像 语法:A=imread(filename,fmt) \ [X,map]=imread(filename,fmt) \

用matlab数字图像处理四个实验

数字图像处理 实验指导书

目录 实验一MATLAB数字图像处理初步实验二图像的代数运算 实验三图像增强-空间滤波 实验四图像分割 3

实验一 MATLAB数字图像处理初步 一、实验目的与要求 1.熟悉及掌握在MATLAB中能够处理哪些格式图像。 2.熟练掌握在MATLAB中如何读取图像。 3.掌握如何利用MATLAB来获取图像的大小、颜色、高度、宽度等等相关信息。 4.掌握如何在MATLAB中按照指定要求存储一幅图像的方法。 5.图像间如何转化。 二、实验原理及知识点 1、数字图像的表示和类别 一幅图像可以被定义为一个二维函数f(x,y),其中x和y是空间(平面)坐标,f 在任何坐标处(x,y)处的振幅称为图像在该点的亮度。灰度是用来表示黑白图像亮度的一个术语,而彩色图像是由单个二维图像组合形成的。例如,在RGB彩色系统中,一幅彩色图像是由三幅独立的分量图像(红、绿、蓝)组成的。因此,许多为黑白图像处理开发的技术适用于彩色图像处理,方法是分别处理三副独立的分量图像即可。 图像关于x和y坐标以及振幅连续。要将这样的一幅图像转化为数字形式,就要求数字化坐标和振幅。将坐标值数字化成为取样;将振幅数字化成为量化。采样和量化的过程如图1所示。因此,当f的x、y分量和振幅都是有限且离散的量时,称该图像为数字图像。 作为MATLAB基本数据类型的数值数组本身十分适于表达图像,矩阵的元素和图像的像素之间有着十分自然的对应关系。 图1 图像的采样和量化 根据图像数据矩阵解释方法的不同,MA TLAB把其处理为4类: ?亮度图像(Intensity images)

MATLAB图象处理函数

MATLAB图象处理函数 1. 图象文件处理 I=imread(filename)_______读入图象文件到内部矩阵图象变量(以后简称图象) imwrite(I,filename)_______将指定图象写到磁盘的图象文件(以后简称图象文件)上imfinfo(filename)_______显示图象文件的信息 2. 图象显示 2.1 基本显示 imshow filename______直接在当前窗口显示图象文件 imshow(I)______在当前窗口显示指定图象 rgb = getimage______将当前窗口显示的图象读入到矩阵图象变量 2.2 多幅图象的显示 figure;imshow(I,map)______在新的图象窗口上显示指定图象(多幅图象显示在不同的图象窗口上) subplot(m,n,p);imshow(I,map)____在图象窗口的指定位置上显示指定图象(多幅图象显示在同一个图象窗口上)[会因不同图象的map不同而用完系统颜色导致显示出错(尤 其是8bit显示系统上)] subplot(m,n,p);subimage(I,map)____在图象窗口的指定位置上显示指定图象(多幅图象显示在同一个图象窗口上)[subimage先将图象转化为RGB图象然后再显示,因而不同 图象的map不同而用完系统颜色导致显示出错] 2.3 图象显示的放大和缩小 (1)用图象窗口的工具按钮实现[略] (2)用命令窗口的函数实现 zoom on______允许进行放大和缩小 zoom in______对图象进行放大 zoom out_____对图象进行缩小 zoom off_____禁止进行放大和缩小 3. 图象的运算 Z = imabsdiff(X,Y) _____求两图象差的绝对值 Z = imadd(X,Y) _____图象相加 IM2 = imcomplement(IM) _____求图象的补 Z = imdivide(X,Y) _____两图象对应象素相除或图象除以常数 Z = imlincomb(K1,A1,K2,A2,...,Kn,An) _____计算一系列图象的线性组合图象 Z = immultiply(X,Y) _____两图象对应象素相乘或图象乘以常数 Z = imsubtract(X,Y) _____图象相减 4. 图象处理 在MATLAB中,图象是以矩阵的形式存放的,二值图象、灰度图象和索引(Indexed)图象用二维矩阵存放,彩色(RGB)图象用三维矩阵存放。前一类图象可以通过双下标访问图象

MATLAB课程设计报告图像处理

一.课程设计相关知识综述...................................................................... 1.1 研究目的及意义 (3) 1.2 数字图像处理研究的内容........................................................... 1.3 MATLAB 软件的介绍.................................................................. 1.3.1 MATLAB 语言的特点......................................................... 1.3.2 MATLAB 图像文件格式.................................................... 1.3.3 MATLAB 图像处理工具箱简介........................................ 1.3.4 MATLAB 中的图像类型.................................................... 1.3.5 MATLAB 的主要应用........................................................ 1.4 函数介绍........................................................................................ 二.课程设计内容和要求........................................................................... 2.1 主要研究内容................................................................................ 2.2 具体要求....................................................................................... 2.3 预期达到的目标........................................................................... 三.设计过程............................................................................................... 3.1 设计方案及步骤............................................................................ 3.2 程序清单及注释........................................................................... 3.3 实验结果........................................................................................ 四.团队情况................................................................................................ 五.总结....................................................................................................... 六.参考文献............................................................................................... 一.课程设计相关知识综述. 1.1研究目的及意义

基于Matlab基本图像处理程序

图像读入 ●从图形文件中读入图像imread Syntax: A = imread(, fmt) :指定的灰度或彩色图像文件的完整路径和文件名。 fmt:指定图形文件的格式所对应的标准扩展名。如果imread没有找到所制定的文件,会尝试查找一个名为的文件。 A:包含图像矩阵的矩阵。对于灰度图像,它是一个M行N列的矩阵。如果文件包含RGB 真彩图像,则是m*n*3的矩阵。 ●对于索引图像,格式[X, map] = imread(, fmt) X:图像数据矩阵。 MAP:颜色索引表 图像的显示 ●imshow函数:显示工作区或图像文件中的图像 ●Syntax: imshow(I) %I是要现实的灰度图像矩阵 imshow(I,[low high],param1, val1, param2, val2,...) %I是要现实的灰度图像矩阵,指定要显示的灰度范围,后面的参数指定显示图像的特定参数 imshow(RGB) imshow(BW) imshow(X,map) %map颜色索引表 imshow() himage = imshow(...)

●操作:读取并显示图像 I=imread('C:\Users\fanjinfei\Desktop\baby.bmp');%读取图像数据 imshow(I);%显示原图像 图像增强 一.图像的全局描述 直方图(Histogram):是一种对数据分布情况的图形表示,是一种二维统计图表,它的两个坐标分别是统计样本和该样本对应的某个属性的度量。 图像直方图(Image Histogram):是表示数字图像中亮度分布的直方图,用来描述图象灰度值,标绘了图像中每个亮度值的像素数。 灰度直方图:是灰度级的函数,它表示图像中具有某种灰度级的像素的个数,反映了图像中某种灰度出现的频率。描述了一幅图像的灰度级统计信息。是一个二维图,横坐标为图像中各个像素点的灰度级别,纵坐标表示具有各个灰度级别的像素在图像中出现的次数或概率。 归一化直方图:直接反应不同灰度级出现的比率。纵坐标表示具有各个灰度级别的像素在图像中出现的概率。 图像的灰度直方图:是一个离散函数,表示图像每一灰度级与该灰度级出现概率的对应关系。 图像的灰度直方图运算: imhist()函数,其横坐标表示像素的灰度级别,纵坐标为像素点的个数。 ●Imhist函数=Display histogram of image data显示灰度直方图的函数 ●Syntax: ①imhist(I) % I为要计算的灰度直方图图像 ②imhist(I, n) % n指定的灰度级的数目,表示所有灰度级均匀分布在n个小区间内。 ③imhist(X, map) ④[counts,x] = imhist(...) %counts直方图数据向量。counts(i)第i个灰度区间中的像素数目。x是保存了对应的灰度小区间的向量。 注意:若调用时不接受这个函数的返回值,则直接显示直方图;在得这些返回数据之后,也可以使用stem(x,counts)手绘直方图。 ●例1:显示某一图像的灰度直方图

基于matlab的数字图像处理常用函数

基本界面 1-1、基本运算与函数 在MATLAB下进行基本数学运算,只需将运算式直接打入提示号(>>)之後,并按入Enter键即可。例如: >> (5*2+1.3-0.8)*10/25 ans =4.2000 MATLAB会将运算结果直接存入一变数ans,代表MATLAB运算後的答案(Answer)并显示其数值於萤幕上。 小提示:">>"是MATLAB的提示符号(Prompt),但在PC中文视窗系统下,由於编码方式不同,此提示符号常会消失不见,但这并不会影响到MATLAB的运算结果。 我们也可将上述运算式的结果设定给另一个变数x: x = (5*2+1.3-0.8)*10^2/25 x = 42

若要输入矩阵,则必须在每一列结尾加上分号(;),如下例: A = [1 2 3 4; 5 6 7 8; 9 1011 12]; A = 1 2 3 4 5 6 7 8 9 10 11 12 同样地,我们可以对矩阵进行各种处理: A(2,3) = 5 % 改变位於第二列,第三行的元素值 A = 1 2 3 4 5 6 5 8 9 10 11 12 B = A(2,1:3) % 取出部份矩阵B B = 5 6 5 A = [A B'] % 将B转置後以列向量并入A A = 1 2 3 4 5 5 6 5 8 6 9 10 11 12 5 A(:, 2) = [] % 删除第二行(:代表所有列) A = 1 3 4 5

5 5 8 6 9 11 12 5 A = [A; 4 3 2 1] % 加入第四列 A = 1 3 4 5 5 5 8 6 9 11 12 5 4 3 2 1 A([1 4], :) = [] % 删除第一和第四列(:代表所有行) A = 5 5 8 6 9 11 12 5 这几种矩阵处理的方式可以相互叠代运用,产生各种意想不到的效果,就看各位的巧思和创意。 小提示:在MATLAB的内部资料结构中,每一个矩阵都是一个以行为主(Column-oriented )的阵列(Array)因此对於矩阵元素的存取,我们可用一维或二维的索引(Index)来定址。举例来说,在上述矩阵A中,位於第二列、第三行的元素可写为A(2,3) (二维索引)或A(6)(一维索引,即将所有直行进行堆叠後的第六个元素)。 此外,若要重新安排矩阵的形状,可用reshape命令: B = reshape(A, 4, 2) % 4是新矩阵的行数,2是新矩阵的列数 B = 5 8 9 12 5 6 11 5

最常用的matlab图像处理的源代码

最常用的一些图像处理Matlab源代 码 #1:数字图像矩阵数据的显示及其傅立叶变换 #2:二维离散余弦变换的图像压缩 #3:采用灰度变换的方法增强图像的对比度 #4:直方图均匀化 #5:模拟图像受高斯白噪声和椒盐噪声的影响 #6:采用二维中值滤波函数medfilt2对受椒盐噪声干扰的图像滤波 #7:采用MATLAB中的函数filter2对受噪声干扰的图像进行均值滤波 #8:图像的自适应魏纳滤波 #9:运用5种不同的梯度增强法进行图像锐化 #10:图像的高通滤波和掩模处理 #11:利用巴特沃斯(Butterworth)低通滤波器对受噪声干扰的图像进行平滑处理 #12:利用巴特沃斯(Butterworth)高通滤波器对受噪声干扰的图像进行平滑处理 1.数字图像矩阵数据的显示及其傅立叶变换 f=zeros(30,30); f(5:24,13:17)=1; imshow(f, 'notruesize'); F=fft2(f,256,256); % 快速傅立叶变换算法只能处矩阵维数为2的幂次,f矩阵不 % 是,通过对f矩阵进行零填充来调整 F2=fftshift(F); % 一般在计算图形函数的傅立叶变换时,坐标原点在 % 函数图形的中心位置处,而计算机在对图像执行傅立叶变换 % 时是以图像的左上角为坐标原点。所以使用函数fftshift进 %行修正,使变换后的直流分量位于图形的中心; figure,imshow(log(abs(F2)),[-1 5],'notruesize');

2 二维离散余弦变换的图像压缩I=imread('cameraman.tif'); % MATLAB自带的图像imshow(I); clear;close all I=imread('cameraman.tif'); imshow(I); I=im2double(I); T=dctmtx(8); B=blkproc(I,[8 8], 'P1*x*P2',T,T'); Mask=[1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]; B2=blkproc(B,[8 8],'P1.*x',Mask); % 此处为点乘(.*) I2=blkproc(B2,[8 8], 'P1*x*P2',T',T); figure,imshow(I2); % 重建后的图像 3.采用灰度变换的方法增强图像的对比度I=imread('rice.tif'); imshow(I); figure,imhist(I); J=imadjust(I,[0.15 0.9], [0 1]); figure,imshow(J); figure,imhist(J);

matlab与图像处理

关于MATLAB在数字图像复原技术中应用的文献综述 摘要:图像复原技术在图像处理领域中具有非常重要的地位,该技术能够最大程度地恢复图像的本来面貌图像复原技术的重点在于找出导致图像失真的原因,并针对该原因对失真图像进行反处理,以此来获取清晰的图像。文本对四个图像复原算法(维纳滤波算法;约束最小二乘(正则)滤波算法;迭代非线性复原算法;盲解卷积算法)的图像复原原理进行了说明,同时对上述算法进行了仿真实现,并分析了实验的结果。通过仿真出来的结果,我们可以很清楚的看出维纳滤波算法所得到的复原图像比较清晰,但盲解卷积算法在同一情况下得到的复原图像就不太理想。然而,在不知道失真信息的情况下应用盲解算法恢复图像就会得到比较好的效果。本文在对相关图像复原技术文献资料搜集及整理基础上进行梳理及归纳。 关键词:数字图像处理;图像复原;MATLAB 随着计算机技术的迅猛发展,人们对数字图像的依赖日益增强。但是由于设备或环境等因素的影响,我们有时候无法得到令人满意的清晰图像。这时就需要图像复原技术对降晰的图像进行处理。具体来说,就是找出导致图像降晰的机制,并针对该机制对图像进行反处理,最终获得清晰的图像。[1] 数字图像在获取的过程中,由于光学系统的像差、光学成像衍射、成像系统的非线性畸变、摄影胶片的感光的非线性、成像过程的相对运动、大气的湍流效应、环境随机噪声等原因,图像会产生一定程度的退化.因此,必须采取一定的方法尽可能地减少或消除图像质量的下降,恢复图像的本来面目,这就是图像复原,也称为图像恢复。 图像复原是试图利用退化过程的先验知识使已退化的图像恢复本来面目,即根据退化的原因,分析引起退化的环境因素,建立相应的数学模型,并沿着使图像降质的逆过程恢复图像。[2] 文献的梳理与归纳: (一)数字图像处理的复原[3] 下面介绍一些图像复原的背景,包括进行图像复原的原因和图像复原模型两个方面的内容。 1、影响图像质量的原因 影响图像质量的因素主要有下面一些: 1、图像捕获过程中镜头发生了移动,或者暴光时间过长; 2、场景位于焦距以外、使用了广角镜、大气干扰或短时间的暴光导致捕获到的光子 减少; 3、供焦显微镜中出现散光变形。 2、图像复原模型 一幅质量改进或退化的图像可以近似地用方程g=Hf+n表示,其中g为图像,H为变形算子,又称为点扩散函数(PSF),f为原始的真实图像,n为附加噪声,它在图像捕获过程中产生并且是图像质量变坏。 上面的模型中,PSF是一个很重要的因素,它的值直接影响到复原后图像的质量。由于许多种退化都可以用线性的位移不变模型来近似,这样可以把线性系统种的许多数学

数字图像处理 MATLAB代码

MATLAB实用源代码 图像读取及灰度变换 I=imread('cameraman.tif');%读取图像 subplot(1,2,1),imshow(I)%输出图像 title('原始图像')%在原始图像中加标题 subplot(1,2,2),imhist(I)%输出原图直方图 title('原始图像直方图')%在原图直方图上加标题 图像旋转 I=imread('cameraman.tif'); figure,imshow(I); theta=30; K=imrotate(I,theta);%Try varying the angle,theta. figure,imshow(K) 边缘检测 I=imread('cameraman.tif'); J1=edge(I,'sobel'); J2=edge(I,'prewitt'); J3=edge(I,'log'); subplot(1,4,1),imshow(I); subplot(1,4,2),imshow(J1); subplot(1,4,3),imshow(J2); subplot(1,4,4),imshow(J3); 1.图像反转 MATLAB程序实现如下: I=imread('xian.bmp'); J=double(I); J=-J+(256-1);%图像反转线性变换 H=uint8(J); subplot(1,2,1),imshow(I); subplot(1,2,2),imshow(H); 2.灰度线性变换 MATLAB程序实现如下: I=imread('xian.bmp'); subplot(2,2,1),imshow(I); title('原始图像'); axis([50,250,50,200]); axis on;%显示坐标系 I1=rgb2gray(I); subplot(2,2,2),imshow(I1); title('灰度图像'); axis([50,250,50,200]);

基于Matlab的遥感图像处理

基于Matlab的遥感图像处理 测绘工程1161641014 鲍家顺 摘要文章运用Matlab软件对遥感影像的不足之处进行处理改善,详细介绍了处理方法和处理的原理,对处理结果进行了比对分析,并进行了边缘检测与特征提取,论证了处理方法的可行性。 关键词图像处理;matlab ;均衡化;规定化;色彩平衡;边缘检测;特征提取 在获取遥感图像过程中,由于多种因素的影响,会导致图像质量的退化,为了改善图像质量,突出遥感图像中的某些信息,提高图像的视觉效果,需要对图像进行各方面的处理,如分段线形拉伸,对数变换,直方图规定化、正态化,图像滤波,纹理分析及目标检测等。通过图像处理可以去除图像中的噪声,增强感兴趣的目标和周围背景图像间的反差,有选择地突出便于人或电脑分析的信息,抑制一些无用的信息,强调出图像的边缘,增强图像的识别方便性,从而进行边缘检测和特征提取。图像写出函数,显示图像函数有image ( ) 、inshow ( ) 等。[2 ]Matlab 图像处理工具箱处理工具提供了imhist () 函数来计算和显示图像的直方图, 提供了直方图均衡化的函数histeq() 、边缘检测函数edge ( ) 、腐蚀函数imerode () 、膨胀函数imdilate () 及二值图像转换函数im2bw () 等。文中实验数据采用的是桂林市区灰度遥感图像,宽度为1024 像素,高度为713 像素。 文件读入: 讲workspace切入到图片所在图层: Cd d:\ 读入图片: [x,cmap]=imread('m.PNG'); %将图片读入转换为矩阵 clf;imshow(x); %显示图片 原始图片

MATLAB中图像函数大全 详解及例子

图像处理函数详解——strel 功能:用于膨胀腐蚀及开闭运算等操作的结构元素对象(本论坛随即对膨胀腐蚀等操作进行讲解)。 用法:SE=strel(shape,parameters) 创建由指定形状shape对应的结构元素。其中shape的种类有 arbitrary' 'pair' 'diamond' 'periodicline' 'disk' 'rectangle' 'line' 'square' 'octagon 参数parameters一般控制SE的大小。 例子: se1=strel('square',6) %创建6*6的正方形 se2=strel('line',10,45) %创建直线长度10,角度45 se3=strel('disk',15) %创建圆盘半径15 se4=strel('ball',15,5) %创建椭圆体,半径15,高度5

图像处理函数详解——roipoly 功能:用于选择图像中的多边形区域。 用法:BW=roipoly(I,c,r) BW=roipoly(I) BW=roipoly(x,y,I,xi,yi) [BW,xi,yi]=roipoly(...) [x,y,BW,xi,yi]=roipoly(...) BW=roipoly(I,c,r)表示用向量c、r指定多边形各点的X、Y坐标。BW选中的区域为1,其他部分的值为0. BW=roipoly(I)表示建立交互式的处理界面。 BW=roipoly(x,y,I,xi,yi)表示向量x和y建立非默认的坐标系,然后在指定的坐标系下选择由向量xi,yi指定的多边形区域。 例子:I=imread('eight.tif'); c=[222272300270221194]; r=[21217512112175]; BW=roipoly(I,c,r); imshow(I)

相关文档