文档视界 最新最全的文档下载
当前位置:文档视界 › 彩色图像处理部分程序

彩色图像处理部分程序

彩色图像处理部分程序
彩色图像处理部分程序

例9.1

clear

rgb_R=zeros(128,128);

rgb_R(1:64,1:64)=1;

rgb_G=zeros(128,128);

rgb_G(1:64,65:128)=1;

rgb_B=zeros(128,128);

rgb_B(65:128,1:64)=1;

rgb=cat(3,rgb_R,rgb_G,rgb_B); figure,imshow(rgb),title

例9.2

rgb=imread('i_flower673.jpg'); rgb1=im2double(rgb);

r=rgb1(:, :,1);

g=rgb1(:, :,2);

b=rgb1(:,:,3);

I=(r+g+b)/3;

tmp1=min(min(r,g),b);

tmp2=r+g+b;

tmp2(tmp2==0)=eps;

S=1-3.*tmp1./tmp2;

tmp1=0.5*((r-g)+(r-b));

tmp2=sqrt((r-g).^2+(r-b).*(g-b));

theta=acos(tmp1./(tmp2+eps));

H=theta;

H(b>g)=2*pi-H(b>g);

H=H/(2*pi);

H(S==0)=0;

例9.3

I=imread('i_peppers_gray.bmp');

GS8=grayslice(I,8);

GS64=grayslice(I,64);

subplot(1,3,1),imshow(I),title

subplot(1,3,2),subimage(GSB,hot(8)),title subplot(1,3,3),subimage(GS64,hot(64),title

例6.4

I=imread('i_boat.bmp');

I=double(I);

[m,n]=size(I);

L=256;

for i=1:m

if j=1:n

if I(i,j)

R(i,j)=0;

G(i,j)=4*I(i,j);

B(i,j)=L;

else if I(i,j)<=L/2;

R(i,j)=0;

G(i,j)=L;

B(i,j)=-4*I(i,j)+2*L; else if I(i,j)<=3*L/4 R(i,j)=4*I(i,j)-2*L; G(i,j)=L;

B(i,j)=0;

else

R(i.j)=L;

G(i,j)=-4*I(i,j)+4*L; B(i,j)=0;

end

end

end

end

end

for i=1:m

for j=1:n

G2C(i,j,1)=R(i,j);

G2C(i,j,2)=G(i,j);

G2C(i,j,3)=B(i,j);

end

end

G2C=G2C/256;

例9.5

rgb=imread('i_fly18.jpg'); rgb1=im2double(rgb);

r=rgb1(:,:,1);

g=rgb1(:,:,2);

b=rgb1?

I1=(r+g+b)/3;

tmp1=min(min(r,g),b);

tmp2=r+g+b;

tmp2(tmp2==0)=eps;

S=1-3.*tmp1./tmp2;

tmp1=0.5*((r-g)+(r-b));

tmp2=sqrt((r-q).^2+(r-b).*(g-b));

theta=acos(tmp1./(tmp2+eps));

H1=theta

H1(b>g)=2*pi-H1(b>g);

H1(S==0)=0;

I=histeq(I1);

hsi=cat(3,H1,S,I);

H=hsi(:,:,1)*2*pi;

S=hsi(:,:,2);

I=hsi(:,:,3);

R=zeros(size(hsi,1),size(hsi,2));

G=zeros(size(hsi,1),size(hsi,2));

B=zeros(size(hsi,1),size(hsi,2));

ind=find((H>=0)&(H<2*pi/3));

B(ind)=I(ind).*(1.0-S(ind));

R(ind)=I(ind).*(1.0+S(ind).*cos(H(ind))./cos(pi/3.0-H(ind))); G(ind)=1.0-(R(ind)+B(ind));

ind=find((H>2*pi/3)&(H<4*pi/3));

H(ind)=H(ind)-pi*2/3;

R(ind)=I(ind).*(1.0-S(ind).*cos(H(ind))./cos(pi/3.0-H(ind)));

G(ind)=1.0-(R(ind)+B(ind));

ind=find((H>2*pi/3)&(H<4*pi/3));

H(ind)=H(ind)-pi*2/3;

R(ind)=I(ind).*(1.0=S(ind));

G(ind)=I(ind).*(1.0+S(ind).*cos(H(ind)0./cos(pi/3.0-H(id)));

B(ind)=1.0-(R(ind)+G(ind));

ind=find(H>=4*pi/3)&(H<2*pi);

H(ind)=H(ind)-pi*4/3;

G(ind)=I(ind).*(1.0-S(ind));

B(ind=I(ind.*(1.0+S(ind).8cos(H(ind)).(H(ind))./cos(pi/3.0-H(in d)));

R(ind)=1.0-(G(ind)+B(ind));

RGB=cat(3,R,G,B);

'

例9.6

rgb=imread('flower608.jpg');

fR=rgb(;,:,1);

fG=rgb(:,:,2);

fB=rgb(;,:,3);

w=fspecial('average');

fR_filtered=imfilter(fR,w);

fG-filtered=imfilter(fG,w);

fB-filtered=imfilter(fB,w);

rgb_filtered=cat(3,fR_filtered,fG_filtered,fB_filtered);

例9.8

rgb=imread('flower608.jpg');

fR=rgb(:,:,1);

fG=rgb(:,:,2);

fB=rgb(:,:,3);

labMatrix=[1 1 1;1-8 1; 1 1 1];

fR_tmp=imfilter(fR,lapMatrix,'replicate');

fG_tmp=imfilter(fG,lapMatrix,'replicate');

fB_tmp=imfilter(fB,lapMatrix,'replicate');

rgb_tmp=cat(3,fR_tmp,fB_tmp);

rgb_sharped=imsubtract(rgb_tmp);

例9.10

S1=(S>0.3*(max(max(S(:)))));

F=S1.*H;

例9.11

rgb=imread('flower608.jpg');

rgb1=im2double(rgb);

r=rgb1(:,:,1);

g=rgb1(:,:,2);

b=rgb1(:,:,3);

r1=r(129:256,86:170);

r1_u=mean(mean(r1(:)));

[m,n]=size(r1);

sd1=0.0;

for i=1:m;

for j=1:n

sd1=sd1+(r1(i,j)-r1_u)*(r1(i,j)-r1_u); end

r1_d=sqrt(sd1/(m*n));

r2_d=zeros(size(rgb1,1),size(rgb1,2));

ind=find((r>r1_u-1.25*r1_d)&(r

r2(ind)=1;

例9.12

rgb=imread('lena.jpg');

sob=fspecial('sobel');

Rx=imfilter(double(rgb(:,:,1)),sob,'replicate');

Ry=imfilter(double(rgb(:,:,1)),sob','replicate');

Gx=imfilter(double(rgb(:,:,2)),sob,'replicate');

Gy=imfilter(double(rgb(:,:,2)),sob','replicate');

Bx=imfliter(double(rgb(:,:,3)),sob,'replicate');

By=imfliter(double(rgb(:,:,3)),sob','replicate');

r_gradiant=mat2gray(max(Rx,Ry));

g_gradiant=mat2gray(max(Gx,Gy));

b_grandiant=mat2gray(max(Bx,By));

rgb_grandiant=rgb2gray(cat(3,r_grantiant,g_grantiant,b_grandia nt));

gxx=Rx.^2+Gx.^2+Bx.^2;

gyy=Ry.^2+By.^2;+Gx.^2;

theta=0.5*(atan(2*gxy./(gxx-gyy+eps)));

G1=0.5*((gxx+gyy)+(gxx-gyy).*cos(2*theta)+2*gxy.*sin(2*the

ta));

theta=0.5*((gxx+gyy)+(gxx-gyy).*cos(2*theta)+2*gxy.*sin(2*t heta));

G2=0.5*((gxx+gyy)+(gxx-gyy).*cos(2*theta)+2*gxy.*sin(2*the ta));

G1=G1.^0.5;

G2=G2.^0.5;

rgb_vectorgradiant=mat2gray(max(G1,G2));

diff=abs(rgb_vectorgradiant-rgb_gradiant);

基于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):是表示数字图像中亮度分布的直方图,用来描述图象灰度值,标绘了图像中每个亮度值的像素数。 灰度直方图:是灰度级的函数,它表示图像中具有某种灰度级的像素的个数,反映了图 像中某种灰度出现的频率。描述了一幅图像的灰度级统计信息。是一个二维图,横坐标为图像中各个像素点的灰度级别,纵坐标表示具有各个灰度级别的像素在图像中出现的次数或概率。 归一化直方图:直接反应不同灰度级出现的比率。纵坐标表示具有各个灰度级别的像

图像处理编程总结

EmguCV编程总结 学习C#图像处理编程有一段时间了,然后写写自己的已经积累的经验,网上有关于C#数字图像处理的资料很少,教程方面,专门为C#数字图像处理的到目前为止我就看到了三本,这三本的内容都是利用GDI+来做图像处理的。GDI+为我们提供了图像处理所需要的一些类,还有一些函数。在结合C#做界面的优势,因此做图像处理我个人感觉要比c++和opencv方便,opencv中有强大的算法,但是就是这个界面不友好。在GDI+中只是提供了图像处理的类,还有少量的函数,如果真正要做处理,大量的函数还是的需要自己编写,我看到的这三本书上讲的基本上都是编写这些函数的内容,在GDI+编程中对图像处理通常有三种方式,第一种是利用纯C#的方式,理解简单,但是效率差。第二种是内存法,理解稍微困难点,但是效率比纯C#的要高几百倍。第三种就是在C#下利用指针了,当然利用指针就是效率最高的了,比内存法都要效率高,但是指针的理解比较困难,如果退指针理解还可以,就推荐用这种方法。 在前面的文章中我对比过在C#中用这三种方式灰度化图像的运行效率对比,还给出了具体时间。我看到的这三本C#图像处理的书上,其中一本的算法是按照内存法来写的,其他两本上的算法都是按照纯C#方法写的,效率令人堪忧。当然还有一些关于GDI+的书籍,这上面就介绍的内容就不单单是图像方面的处理了,还包括其他方面的内容,这是对学软件计算机的人看的,我们了解下就可以,再说,上面处理的方式都是纯C#的方式处理的,对我们图像处理来说效率实在不好,所以看看就好。 因此,C#图像处理的话,我推荐的是指针的方法,效率最好,速度快。 这是我们直接用C#来图像处理,当然大多数算法还得自己编写程序,反正我看到的教材上都是这样教的,但是实际中,我们写大量成熟的算法是很花时间的,估计写完这些都花个好几年时间了,因此,我们还得需要一些计算机视觉处理的库,调用其中的函数完成主要的处理功能。 有本名字叫《EmguCV Essentials》的书上就对现在常见的库做了对比,这本书上对比了有三种计算机视觉库,有opencv,EmguCV,https://www.docsj.com/doc/e114472581.html,这三种库。 首先从许可证的获取方面做了对比,其中opencv是开放的,emguCv有开放的也有商业版的,https://www.docsj.com/doc/e114472581.html,就没有前两种那开放了。下图就是对比结果:

数字图像处理程序若干(matlab)

主程序 clear all close all clc !echo 本次图像处理的菜单如下:! !echo 1,imgsharping! !echo 2,imgnegative! !echo 3,imgsmoothing! !echo 4,imgsubtracting! !echo 5,medianfilting! !echo 6,contraststrength! !echo 7,lineartransform! !echo 8,imgfilp! !echo 9,imgindextransform! iptsetpref('ImshowBorder', 'tight') a=1; img = imread('C:\Users\huanhuan\Desktop\司马.jpg'); figure(1), imshow(img); while(a==1) choose=input('please enter your choosing ranging from 1 to 9: '); switch choose case 1, imgsharping(img); case 2, imgnegative(img); case 3, imgsmoothing(img); case 4, imgsubstract(img); case 5, medianfilting(img); case 6, contraststrength(); case 7, lineartransform(); case 8, imgfilp(img); case 9, imgindextransform(); otherwise disp('Unknown method.'); end a=input('continue(1) or quit(2)');

数字图像处理四个实验报告,带有源程序

数字图像处理 实验指导书 学院:通信与电子工程学院 专业:电子信息工程 班级: 学号: 姓名: XX理工大学

实验一 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) 二值图像(Binary images) 索引图像(Indexed images) RGB图像(RGB images)

图像处理过程

图像处理过程 图像处理作为小车走迷宫过程中获得信息的第一过程,对于小车的计算路径和确认位置起到了根本的作用,经过了对于OPENCV和LABVIEW两种软件的了解,我们发现虽然OPENCV 在图像处理方面确实十分强大,但是其扩展性与易用性均不如LABVIEW来的好,我们权衡利弊,决定使用LABVIEW进行对于图像的处理。 LABVIEW以其强大的虚拟仪器库著称,我们在本次小车图像处理中用到了以下的组件: 1. https://www.docsj.com/doc/e114472581.html,bview 8.2 2. 3. 4. NI-IMAQ FOR USB* *对于XP SP2系统还需要加载ImaqDirectShowDll.dll、ImaqDirectShowExportDll.dll 图像处理部分分为主要由以下几个部分组成的: 1.图像采集 2.图像阈值分析和转化 3.迷宫出入口检测与小车检测 4.迷宫转化成数组(提供给迷宫算法的接口) 在Labview中我们可以很容易的利用其本身就拥有的扩展库来完成以上的操作,下面对于我们的图像处理程序进行介绍: 1.图像采集 我们组在图像采集部分采用的是动静结合的方法,即先采集一张静态的迷宫图像,通过这个图像,标定出迷宫出入口和小车初始位置,事先计算出小车应该走的路径,之后在小车开始行动之后进行动态采集,分析小车的位置,再对比算出的位置与之前的最短路径来确定小车如何行动。相对于其他组利用OPENCV进行的动态采集,需要不断的计算路径和修正小车方向,我们的方法大大减少了运算量,也减少了小车卡在角落的可能。 静态采集较为简单,可以通过外部软件获取图像,也可以直接调用Labview中NI-IMAQ组件的相关函数来进行单次的采集,在这里我们利用的是Labview中NI-IMAQ相关函数 结合上图来看,先枚举摄像头利用IMAQ USB Enumerate Cameras,然后对摄像头初始化IMAQ USB Init,分配空间并设置基础IMAQ USB Grab Setup,最后进行采集图像IMAQ USB Grab Acquire。 当需要进行动态采集的时候,只需要把采集的部分即IMAQ USB Grab Acquire进行一个循环就可以了。 2.图像降噪和阈值分析(图像二值化) 图像采集完毕之后,必须要进行二值化才能继续进行操作,因为摄像头和光线条件的限制等原因,图像采集之后会有大量的噪点存在,二值化之后可能会在路径上产生黑斑影响计算,而我们想到如果迷宫计算不是采用寻找路径的方法而是采用检测出墙壁进行计算的方法,就可以很好的避免大量噪点的问题。对于阈值分析Labview中同样有合适的函数可以进行 利用IMAQ ColorThreshold,我们可以调整各种颜色阈值来将图像二值化,如下图所示: 其中族控制输入三个阈值的数据,255是二值化后的灰度。 3.迷宫出入口的检测与定标。 在计算中我们把迷宫转化成了一个矩阵,但是图的边界不一定是迷宫的边界,我们需要手动标定出迷宫的边界,这是就需要用到IMAQ Select Point,通过鼠标点选选出迷宫的边界(角)的坐标,如下图所示。

IDL编程实现图像处理

IDL编程实现图像处理 pro example ENVI, /RESTORE_BASE_SAVE_FILES ENVI_BATCH_INIT tlb=widget_base(column=1,mbar=mbar,title='Example',tlb_frame_attr=1,xoffset=500,yo ffset=100,xsize=800,ysize=600,RESOURCE_NAME = 'example') filemenu=widget_button(mbar,value='File') fileopt1=widget_button(filemenu,value='Open',event_pro='open_event') fileopt2=widget_button(filemenu,value='Save',/menu) Save1= widget_button(fileopt2,value = 'binary',uname = 'savebinary') Save2= widget_button(fileopt2,value = 'jpg',uname = 'savejpg') Save3= widget_button(fileopt2,value = 'bmp',uname = 'savebmp') Save4= widget_button(fileopt2,value = 'tif',uname = 'savetif') Save5= widget_button(fileopt2,value = 'dat',uname = 'savedat') fileopt3=widget_button(filemenu,value='Exit',event_pro='exit_event',/separator) editmenu=widget_button(mbar,value='Edit') processopt1=widget_button(editmenu,value='K-L Transform', event_pro='K_L_event',/separator) processopt2=widget_button(editmenu,value='Histogram Equalization',event_pro='HistogramEqualization_event',/separator) processopt3=widget_button(editmenu,value='NDVI',event_pro='NDVI_event',/separator) processopt5=widget_button(editmenu,value='Image Smoothing',event_pro='IS_event') processopt4=widget_button(editmenu,value='edge enhancement',/menu) imageopt1=widget_button(processopt4,value='robort',event_pro='robort_event') imageopt2=widget_button(processopt4,value='sobel',event_pro='sobel_event') imageopt3=widget_button(processopt4,value='prewitt',event_pro='prewitt_event') helpmenu=widget_button(mbar,value='Help') idlhelp=widget_button(helpmenu,value='IDL help',event_pro='help_event') iconbase=widget_base(tlb,row=1,/frame)

数字图像处理程序

数字图像处理实验 图像处理实验(一)直方图 灰度变换是图像增强的一种重要手段,使图像对比度扩展,图像更加清晰,特 征更加明显。 灰度级的直方图给出了一幅图像概貌的描述,通过修改灰度直方图来得到图像 增强。 1、灰度直方图 (1)计算出一幅灰度图像的直方图 clear close all I=imread('004.bmp'); imhist(I) title('实验一(1)直方图'); (2)对灰度图像进行简单的灰度线形变换, figure subplot(2,2,1) imshow(I); title('试验2-灰度线性变换'); subplot(2,2,2) histeq(I); (3)看其直方图的对应变化和图像对比度的变化。 原图像 f(m,n) 的灰度范围 [a,b] 线形变换为图像 g(m,n),灰度范围[a’,b’]公式:g(m,n)=a’+(b’-a’)* f(m,n) /(b-a) figure subplot(2,2,1) imshow(I) J=imadjust(I,[0.3,0.7],[0,1],1); title(' 实验一(3)用g(m,n)=a’+(b’-a’)* f(m,n) /(b-a)进行变换 '); subplot(2,2,2) imshow(J) subplot(2,2,3) imshow(I) J=imadjust(I,[0.5 0.8],[0,1],1); subplot(2,2,4) imshow(J) (4) 图像二值化(选取一个域值,(5) 将图像变为黑白图像) figure subplot(2,2,1)

imshow(I) J=find(I<150); I(J)=0; J=find(I>=150); I(J)=255; title(' 实验一(4)图像二值化 ( 域值为150 ) '); subplot(2,2,2) imshow(I) clc; I=imread('14499.jpg'); bw=im2bw(I,0.5);%选取阈值为0.5 figure; imshow(bw) %显示二值图象 图象处理变换(二) 1.傅立叶变换 熟悉其概念和原理,实现对一幅灰度图像的快速傅立叶变换,并求其变换后的系数分布. 2.离散余弦变换 熟悉其概念和原理,实现对一幅灰度和彩色图像作的离散余弦变换,选择适当的DCT系数阈值对其进行DCT反变换. % 图象的FFT变换 clc; I=imread('005.bmp'); subplot(1,2,1) imshow(I); title('原图'); subplot(1,2,2) imhist(I); title('直方图'); colorbar; J=fft2(I); figure; subplot(1,2,1) imshow(J); title('FFT变换结果'); subplot(1,2,2) K=fftshift(J); imshow(K);

数字图像处理实验指导书模板

《数字图像处理》实验指导书 编写: 罗建军 海南大学三亚学院 10月

目录 一、概述 ....................................................................... 错误!未定义书签。 二、建立程序框架 ....................................................... 错误!未定义书签。 三、建立图像类 ........................................................... 错误!未定义书签。 四、定义图像文档实现图像读/写.............................. 错误!未定义书签。 五、实现图像显示 ....................................................... 错误!未定义书签。 六、建立图像处理类................................................... 错误!未定义书签。 七、实现颜色处理功能............................................... 错误!未定义书签。 (一) 亮度处理................................................................. 错误!未定义书签。 (二) 对比度处理............................................................. 错误!未定义书签。 (三) 色阶处理................................................................. 错误!未定义书签。 (四) 伽马变换................................................................. 错误!未定义书签。 (五) 饱和度处理............................................................. 错误!未定义书签。 (六) 色调处理................................................................. 错误!未定义书签。 八、实现几何变换功能............................................... 错误!未定义书签。 (一) 图像缩放................................................................. 错误!未定义书签。 (二) 旋转......................................................................... 错误!未定义书签。 (三) 水平镜像................................................................. 错误!未定义书签。 (四) 垂直镜像................................................................. 错误!未定义书签。 (五) 右转90度................................................................. 错误!未定义书签。 (六) 左转90度................................................................. 错误!未定义书签。 (七) 旋转180度............................................................... 错误!未定义书签。 九、实现平滑锐化功能............................................... 错误!未定义书签。 十、图像处理扩展编程............................................... 错误!未定义书签。

数字图像处理课程设计哈理工

数字图像处理课程设计 学院:自动化学院 专业:电子信息科学与技术 班级:姓名:12级 B方向樊晓晨 起讫日期:12月28日~1月1日指导教师:曹宇

摘要 基于数字信号处理原理,在数字滤波器设计理论和Matlab 编程技术及其GUI 图形用户界面设计的基础上,开发了具有交互式特点的数字图像处理GUI 软件,界面操作简单方便。 MATLAB既是一种直观、高效的计算机语言,同时又是一个科学计算平台。它为数据分析和数据可视化、算法和应用程序开发提供了最核心的数学和高级图形工具。根据它提供的500多个数学和工程函数,工程技术人员和科学工作者可以在它的集成环境中交互或编程以完成各自的计算。 MATLAB中集成了功能强大的图像处理工具箱。由于MATLAB语言的语法特征与C语言极为相似,而且更加简单、更加符合科技人员对数学表达式的书写格式,而且可移植性好、可扩展性强,再加上其中有丰富的图像处理函数,所以MATLAB在图像处理的应用中具有很大的优势。 关键词:Matlab GUI;数字图像处理;图形用户界

目录 第1 章于MATLAB 的图形用户界面(GUI)设计............................................. - 1 - 1.1 前言............................................................................................................ - 1 - 1.2 句柄图形及图形用户界面........................................................................ - 1 - 1.3 GUIDE ........................................................................................................ - 1 - 1.3 .1GUI设计工具简介 ......................................................................... - 2 - 1.3 .2 编制回调程序................................................................................ - 2 - 第2 章课程设计的目的....................................................................................... - 3 - 第3 章课程设计的内容及要求........................................................................... - 4 - 第4 章设计内容及结果分析............................................................................... - 5 - 4.1 文件操作.................................................................................................... - 6 - 4.1.1 保存................................................................................................. - 6 - 4.1.3 退出................................................................................................. - 6 - 4.2 编辑............................................................................................................ - 7 - 4.2.1 灰度................................................................................................. - 7 - 4.2.2 截图................................................................................................. - 8 - 4.2.3 缩放................................................................................................. - 9 - 4.2.4 上下翻转....................................................................................... - 10 - 4.2.5 加入噪声....................................................................................... - 11 - 4.2.6 图片选择....................................................................................... - 13 - 4.2.7 二值图像....................................................................................... - 14 - 4.2.8 图像分割(计算45度边缘)..................................................... - 14 - 4.2.9 边缘检测....................................................................................... - 15 - 4.2.10 图像保存..................................................................................... - 16 - 第5 章课程设计的目的..................................................................................... - 18 - 第6 章参考文献................................................................................................. - 19 -

数字图像处理程序

数字图像处理程序

数字图像处理实验 图像处理实验(一)直方图 灰度变换是图像增强的一种重要手段,使图像对比度扩展,图像更加清晰,特 征更加明显。 灰度级的直方图给出了一幅图像概貌的描述,通过修改灰度直方图来得到图像 增强。 1、灰度直方图 (1)计算出一幅灰度图像的直方图 clear close all I=imread('004.bmp'); imhist(I) title('实验一(1)直方图'); (2)对灰度图像进行简单的灰度线形变换, figure subplot(2,2,1) imshow(I); title('试验2-灰度线性变换'); subplot(2,2,2) histeq(I); (3)看其直方图的对应变化和图像对比度的变化。 原图像 f(m,n) 的灰度范围 [a,b] 线形变换为图像 g(m,n),灰度范围[a’,b’]公式:g(m,n)=a’+(b’-a’)* f(m,n) /(b-a) figure subplot(2,2,1) imshow(I) J=imadjust(I,[0.3,0.7],[0,1],1); title(' 实验一(3)用g(m,n)=a’+(b’-a’)* f(m,n) /(b-a)进行变换 '); subplot(2,2,2) imshow(J) subplot(2,2,3) imshow(I) J=imadjust(I,[0.5 0.8],[0,1],1); subplot(2,2,4) imshow(J) (4) 图像二值化(选取一个域值,(5) 将图像变为黑白图像) figure subplot(2,2,1)

(完整版)卫星图像处理流程

卫星图像处理流程 一.图像预处理 1.降噪处理 由于传感器的因素,一些获取的遥感图像中,会出现周期性的噪声,我们必须对其进行消除或减弱方可使用。 (1)除周期性噪声和尖锐性噪声 周期性噪声一般重叠在原图像上,成为周期性的干涉图形,具有不同的幅度、频率、和相位。它形成一系列的尖峰或者亮斑,代表在某些空间频率位置最为突出。一般可以用带通或者槽形滤波的方法来消除。 消除尖峰噪声,特别是与扫描方向不平行的,一般用傅立叶变换进行滤波处理的方法比较方便。 图1 消除噪声前

图2 消除噪声后 (2)除坏线和条带 去除遥感图像中的坏线。遥感图像中通常会出现与扫描方向平行的条带,还有一些与辐射信号无关的条带噪声,一般称为坏线。一般采用傅里叶变换和低通滤波进行消除或减弱。 图3 去条纹前

图4 去条纹后 图5 去条带前

图6 去条带后 2.薄云处理 由于天气原因,对于有些遥感图形中出现的薄云可以进行减弱处理。 3.阴影处理 由于太阳高度角的原因,有些图像会出现山体阴影,可以采用比值法对其进行消除。二.几何纠正 通常我们获取的遥感影像一般都是Level2级产品,为使其定位准确,我们在使用遥感图像前,必须对其进行几何精纠正,在地形起伏较大地区,还必须对其进行正射纠正。特殊情况下还须对遥感图像进行大气纠正,此处不做阐述。 1.图像配准 为同一地区的两种数据源能在同一个地理坐标系中进行叠加显示和数学运算,必须先将其中一种数据源的地理坐标配准到另一种数据源的地理坐标上,这个过程叫做配准。(1)影像对栅格图像的配准 将一幅遥感影像配准到相同地区另一幅影像或栅格地图中,使其在空间位置能重合叠加显示。

VC数字图像处理编程

图像处理就是对图像信息进行加工处理,以满足人的视觉心理和实际应用的需要。简单的说,依靠计算机对图像进行各种目的的处理我们就称之为数字图像处理。早期的数字图像处理的目的是以人为对象,为了满足人的视觉效果而改善图像的质量,处理过程中输入的是质量差的图像,输出的是质量好的图像,常用的图像处理方法有图像增强、复原等。随着计算机技术的发展,有一类图像处理是以机器为对象,处理的目的是使机器能够自动识别目标,这称之为图像的识别.图像处理技术博大精深,不仅需要有很强的数学功底,还需要熟练掌握一门计算机语言,在当前流行的语言中,Visual C++这个开发平台是图像开发人员的首选工具。 第一节图像的文件格式 要利用计算机对数字化图像进行处理,首先要对图像的文件格式要有清楚的认识,自然界的图像以模拟信号的形式存在,在用计算机进行处理以前,首先要数字化,比如摄像头(CCD)摄取的信号在送往计算机处理前,一般情况下要经过数模转换,这个任务常常由图像采集卡完成,它的输出一般为裸图的形式;如果用户想要生成目标图像文件,必须根据文件的格式做相应的处理。随着科技的发展,数码像机、数码摄像机已经进入寻常百姓家,我们可以利用这些设备作为图像处理系统的输入设备来为后续的图像处理提供信息源。无论是什么设备,它总是提供按一定的图像文件格式来提供信息,比较常用的有BMP 格式、JPEG格式、GIF格式等等,所以我们在进行图像处理以前,首先要对图像的格式要有清晰的认识,只有在此基础上才可以进行进一步的开发处理。 在讲述图像文件格式前,先对图像作一个简单的分类。除了最简单的图像外,所有的图像都有颜色,而单色图像则是带有颜色的图像中比较简单的格式,它一般由黑色区域和白色区域组成,可以用一个比特表示一个像素,"1"表示黑色,"0"表示白色,当然也可以倒过来表示,这种图像称之为二值图像。我们也可以用8个比特(一个字节)表示一个像素,相当于把黑和白等分为256个级别,"0"表示为黑,"255"表示为白,该字节的数值表示相应像素值的灰度值或亮度值,数值越接近"0",对应像素点越黑,相反,则对应像素点越白,此种图像我们一般称之为灰度图像。单色图像和灰度图像又统称为黑白图像,与之对应存在着彩色图像,这种图像要复杂一些,表示图像时,常用的图像彩色模式有RGB模式、CMYK模式和HIS模式,一般情况下我们只使用RGB模式,R 对应红色,G对应绿色,B对应蓝色,它们统称为三基色,这三中色彩的不同搭配,就可以搭配成各种现实中的色彩,此时彩色图像的每一个像素都需要3个样本组成的一组数据表示,其中每个样本用于表示该像素的一个基本颜色。 对于现存的所有的图像文件格式,在这里主要介绍BMP图像文件格式,并且文件里的图像数据是未压缩的,因为图像的数字化处理主要是对图像中的各个像素进行相应的处理,而未压缩的BMP图像中的像素数值正好与实际要处理的数字图像相对应,这种格式的文件最合适我们对之进行数字化处理。请读者记住,压缩过的图像是无法直接进行数字化处理的,如JPEG、GIF等格式的文件,此时首先要对图像文件解压缩,这就要涉及到一些比较复杂的压缩算法。后续章节中我们将针对特殊的文件格式如何转换为BMP格式的文件问题作专门的论述,经过转换,我们就可以利用得到的未压缩的BMP文件格式进行后续处理。对于JPEG、GIF等格式,由于涉及到压缩算法,这要求读者掌握一定的信息论方面的知识,

matlab数字图像处理程序

数字图像处理程序 实验一 1、图像的缩放: A=imread('F:\MATLAB程序\数字图像处理实验\kunkun.jpg'); subplot(311); imshow(A); title('原图') B=imresize(A,3); subplot(312); imshow(B); title('三倍图'); C=imresize(A,0.5); subplot(313); imshow(C); title('二分之一图'); 2、图像的镜像: A1=imread('F:\MATLAB程序\数字图像处理实验\kunkun.jpg'); figure subplot(2,2,1), imshow(uint8(A1)); H=size(A1); title('原像') A2(1:H(1),1:H(2),1:H(3))=A1(H(1):-1:1,1:H(2),1:H(3));%垂直镜像subplot(2,2,2), imshow(uint8(A2)); title('垂直镜像') A3(1:H(1),1:H(2),1:H(3))=A1(1:H(1),H(2):-1:1,1:H(3));%水平镜像subplot(2,2,3), imshow(uint8(A3)); title('水平镜像') A4(1:H(1),1:H(2),1:H(3))=A1(H(1):-1:1,H(2):-1:1,1:H(3));%对角镜像subplot(2,2,4), imshow(uint8(A4)); title('对角镜像') 3、图像的旋转: I = imread('F:\MATLAB程序\数字图像处理实验\kunkun.jpg'); subplot(141); imshow(I); title('原图'); theta1 = 45;%旋转的角度为45度 K1 = imrotate(I,theta1); % 对图像进行旋转 subplot(142);

数字图像处理实验报告

数字图像处理实验报告

实验一数字图像处理编程基础 一、实验目的 1. 了解MA TLAB图像处理工具箱; 2. 掌握MA TLAB的基本应用方法; 3. 掌握MA TLAB图像存储/图像数据类型/图像类型; 4. 掌握图像文件的读/写/信息查询; 5. 掌握图像显示--显示多幅图像、4种图像类型的显示方法; 6. 编程实现图像类型间的转换。 二、实验内容 1. 实现对图像文件的读/写/信息查询,图像显示--显示多幅图像、4种图像类型的显示方法、图像类型间的转换。 2. 运行图像处理程序,并保存处理结果图像。 三、源代码 I=imread('cameraman.tif') imshow(I); subplot(221), title('图像1'); imwrite('cameraman.tif') M=imread('pout.tif') imview(M) subplot(222), imshow(M); title('图像2'); imread('pout.bmp') N=imread('eight.tif') imview(N) subplot(223), imshow(N); title('图像3'); V=imread('circuit.tif') imview(V) subplot(224), imshow(V); title('图像4');

N=imread('C:\Users\Administrator\Desktop\1.jpg') imshow(N); I=rgb2gary(GRB) [X.map]=gary2ind(N,2) RGB=ind2 rgb(X,map) [X.map]=gary2ind(I,2) I=ind2 gary(X,map) I=imread('C:\Users\dell\Desktop\111.jpg'); subplot(231),imshow(I); title('原图'); M=rgb2gray(I); subplot(232),imshow(M); [X,map]=gray2ind(M,100); subplot(233),imshow(X); RGB=ind2rgb(X,map); subplot(234),imshow(X); [X,map]=rbg2ind(I); subplot(235),imshow(X); 四、实验效果

数字图像处理课程设计报告

本科综合课程设计报告 题 目 ____________________________ 指导教师__________________________ 辅导教师__________________________ 学生姓名__________________________ 学生学号__________________________ _______________________________ 院(部)____________________________专业________________班 ___2008___年 _12__月 _30__日 数字图像处理演示系统 信息科学与技术学院 通信工程 052

1 主要内容 1.1数字图像处理背景及应用 数字图像处理的目的是改善图像的质量,它以人为对象,以改善人的视觉效果为目的。目前,图像处理演示系统应用领域广泛医学、军事、科研、商业等领域。因为数字图像处理技术易于实现非线性处理,处理程序和处理参数可变,故是一项通用性强,精度高,处理方法灵活,信息保存、传送可靠的图像处理技术。本图像处理演示系统以数字图像处理理论为基础,对某些常用功能进行界面化设计,便于初级用户的操作。 1.2 图像处理演示系统设计要求 能加载和显示原始图像,显示和输出处理后的图像; 系统要便于维护和具备可扩展性; 界面友好便于操作; 1.3 图像处理演示系统设计任务 数字图像处理演示系统应该具备图像的几何变换(平移、缩放、旋转、翻转)、图像增强(空间域的平滑滤波与锐化滤波)的简单处理功能。 1.3.1几何变换 几何变换又称为几何运算,它是图像处理和图像分析的重要内容之一。通过几何运算,可以根据应用的需要使原图像产生大小、形状、和位置等各方面的变化。简单的说,几何变换可以改变像素点所在的几何位置,以及图像中各物体之间的空间位置关系,这种运算可以被看成是将各物体在图像内移动,特别是图像具有一定的规律性时,一个图像可以由另外一个图像通过几何变换来产生。实际上,一个不受约束的几何变换,可将输入图像的一个点变换到输出图像中的任意位置。几何变换不仅提供了产生某些特殊图像的可能,甚至还可以使图像处理程序设计简单化。从变换性质来分可以分为图像的位置变换、形状变换等 1.3.2图像增强 图像增强是数字图像处理的基本内容之一,其目的是根据应用需要突出图像中的某些“有用”的信息,削弱或去除不需要的信息,以达到扩大图像中不同物体特征之间的差别,使处理后的图像对于特定应用而言,比原始图像更合适,或者为图像的信息提取以及其他图像分析技术奠定了基础。一般情况下,经过增强处理后,图像的视觉效果会发生改变,这种变化意味着图像的视觉效果得到了改善,某些特定信息得到了增强。

相关文档
相关文档 最新文档