matlab实验九、十、十一
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
⎧0 ⎪ g ( x, y ) = ⎨ ⎪ ⎩255 阈值可取为
f ( x, y ) < T
f ( x, y ) ≥ T
end end end subplot(223);imshow(uint8(I2));title('T=130'); T=43; for i=1:M for j=1:N if I(i,j)<T I3(i,j)=0; else I3(i,j)=255; end end end subplot(224);imshow(uint8(I3));title('T=43');
七、实验图片
实验十
图像的阈值分割
一、实验目的:
1、进一步了解 MATLAB 关于图像处理的相关指令。 2、掌握图像阈值分割的基本原理和基本方法。 3、能够用所学方法实现图像分割。
二、实验内容
(一) 采用人工选择阈值法编写程序,把图像 blood.bmp 分割为二值图像。尝试不同阈值来 分割图像,比较分割效果,选出最满意的阈值。 (提示: 1.先做图像的直方图,参考直方图中灰度的分布尝试确定阈值;应反 复调节阈值的大小,直至二值化的效果最为满意为止。 2.运算之前要先转化为双精度:I=double(I),运算之后再转化为二 进制数表示:I=uint8(I) 变换式如下:
三、实验内容与步骤
(1) 彩色图像的分析 调入并显示彩色图像flower1.tif ; 拆分这幅图像,并分别显示其R,G,B分量; 根据各个分量图像的情况讨论该彩色图像的亮度、色调等性质。 (2) 彩色图像的直方图均衡 接内容(1); 显示这幅图像的R,G,B分量的直方图,分别进行直方图均衡处理,并显示均衡后的直 方图和直方图均衡处理后的各分量; 将处理完毕的各个分量合成彩色图像并显示其结果; 观察处理前后图像的彩色、亮度、色调等性质的变化。 (3) 假彩色处理 调入并显示红色可见光的灰度图像vl_red.jpg、绿色可见光的灰度图像vl_green.jpg 和蓝色可见光的灰度图像vl_blue.jpg;以及近红外灰度图像infer_near.jpg和中红外灰度 图像infer_mid.jpg; 以图像vl_red.jpg为R;图像vl_green.jpg为G;图像vl_blue.jpg为B,将这三幅图像组 合成可见光RGB彩色图像; 分别以近红外图像infer_near.jpg和中红外图像infer_mid替换R分量,形成假彩色图 像; 观察处理的结果,注意不同波长红外线图像组成图像的不同结果 (4) 伪彩色处理1:灰度切片处理 调入并显示灰度图像head.jpg; 利用MATLAB提供的函数对图像在8~256级的范围内进行切片处理, 并使用hot模式和cool 模式进行彩色化; 观察处理的结果。 (5) 彩色变换(选做) 调入并显示灰度图像Lenna.jpg; 使用不同相位的正弦函数作为变换函数,将灰度图像变换为RGB图像。其中红色分量R
二、实验要求
要求学生能够自行评价各主要算子在无噪声条件下和噪声条件下的分割性能。能够 掌握分割条件(阈值等)的选择。 完成规定图像的处理并要求正确评价处理结果, 能够从理论 上作出合理的解释。
三、实验内容与步骤
MATLAB 的图像处理工具箱中提供的 edge 函数可以实现检测边缘的功能,其语法格式 如下: BW = edge(I, ‘sobel’) BW = edge(I, ‘sobel’, direction) BW = edge(I, ‘roberts’) BW = edge(I, ‘log’) 这里 BW = edge(I, ‘sobel’)采用 Sobel 算子进行边缘检测。BW = edge(I, ‘sobel’, direction) 可以指定算子方向,即: direction = ‘horizontal’,为水平方向; direction = ‘vertical’,为垂直方向; direction = ‘both’,为水平和垂直两个方向。 BW = edge(I, ‘roberts’)和 BW = edge(I, ‘log’)分别为用 Roberts 算子和拉普拉斯高斯算子 进行边缘检测。 (1)使用 Roberts 算子的图像分割实验 调入并显示图像 room.tif 中图像;使用 Roberts 算子对图像进行边缘检测处理; Roberts 算子为一对模板:
实验九
一、实验目的
彩色图像处理
使用MatLab 软件对图像进行彩色处理。使学生通过实验熟悉使用MatLab软件进行图像 彩色处理的有关方法,并体会到图像彩色处理技术以及对图像处理的效果。
二、实验要求
要求学生能够完成彩色图像的分析,能正确讨论彩色图像的亮度、色调等性质;会对彩 色图像进行直方图均衡, 并能正确解释均衡处理后的结果; 能够对单色图像进行伪彩色处理、 利用多波长图像进行假彩色合成、进行单色图像的彩色变换。
T=Tnew; i=i+1; end f(R1)=0; f(R2)=1; subplot(122);imshow(f); title('迭代阈值二值化图像');
原始图像 迭代阈值二值化图像
(三)Otsu 法阈值分割 I = imread('lajiao.bmp'); level = graythresh(I); BW = im2bw(I,level); figure, imshow(BW)
三、实验仪器与软件
1.计算机; 2.MATLAB 程序பைடு நூலகம் 3.移动式存储器(软盘、U 盘等) 。 4.记录用的笔、纸。
四、实验报告要求
1.叙述实验过程; 2.提交实验的原始图像和结果图像。
实验十一
一、实验目的
图像分割(边缘检测)
使用MatLab 软件进行图像的分割。使学生通过实验体会一些主要的分割算子对图像处 理的效果,以及各种因素对分割效果的影响。
相应的矩阵为:rh = [0 1;-1 0]; rv = [1 0;0 -1];这里的 rh 为水平 Roberts 算子,rv 为垂直 Roberts 算子。分别显示处理后的水平边界和垂直边界检测结果;用“欧 几里德距离”和“街区距离”方式计算梯度的模, 并显示检测结果; 对于检测结果进行二值 化处理,并显示处理结果; 提示:先做检测结果的直方图,参考直方图中灰度的分布尝试确定阈值;应反复调节
rgb_image=imread('flower1.tif'); fR=rgb_image(:,:,1); fG=rgb_image(:,:,2); fB=rgb_image(:,:,3); figure(1),imshow(fR) figure(2),imshow(fG) figure(3),imshow(fB) %实现 rgb 图像转化为 NTSC 彩色空间的图像 yiq_image=rgb2ntsc(rgb_image); fY=yiq_image(:,:,1); fI=yiq_image(:,:,2); fQ=yiq_image(:,:,3); figure(4),imshow(fY) figure(5),imshow(fI) figure(6),imshow(fQ) fR=histeq(fR,256); fG=histeq(fG,256); fB=histeq(fB,256); RGB_image=cat(3,fR,fG,fB); %将直方图均衡化后的彩色图像合并 figure,imshow(RGB_image) f1=imread('v1_red.jpg'); f2=imread('v1_green.jpg'); f3=imread('v1_blue.jpg'); f4=imread('infer_near.jpg'); ture_color=cat(3,f1,f2,f3); figure,imshow(ture_color) false_color=cat(3,f4,f2,f3); figure,imshow(false_color) f=imread('head.jpg'); cut_1=imadjust(f,[0.0925 0.5],[0.0925 0.5]);%提取灰度在 16-128 之间的像素 cut_2=imadjust(f,[0.5 1],[0.5 1]); figure,imshow(cut_1),colormap(hot) (选做) f=imread('Lenna.jpg'); g=ice('image',f); %通过 ice(交互彩色编辑)函数对图像进行变换 %提取灰度在 128-256 之间的像素 %显示图像 cut_1,并使用 hot 模型彩色化 %显示由红、绿、蓝三幅图合成的彩色图 %用近红外图像代替 R 分量 %显示由近红外、绿、蓝三幅图合成的假彩色图 %观察处理后的彩色图色度,亮度参照前面 %对彩色图像的分量进行直方图均衡化 %图像 flower1.tif 的亮度 %图像 flower1.tif 的色调 %图像 flower1.tif 的饱和度 %读取图像 flower1.tif %获取图像的红色分量 %获取图像的绿色分量 %获取图像的蓝色分量 %分别显示图像
T=91,T=130 ,T=43,比较效果,见教材 P92 3.得到图像 I 的大小用函数: [M,N]=size(I),M 为行,N 为列数 I=imread('blood1.bmp');figure; subplot(221);imshow(I);title('原图形'); %subplot(122);imhist(I);title('直方图'); I=double(I);I1=double(I);I2=double(I);I3=double(I); [M,N]=size(I); T=91; for i=1:M for j=1:N if I(i,j)<T I1(i,j)=0; else I1(i,j)=255; end end end subplot(222);imshow(uint8(I1));title('T=91'); T=130; for i=1:M for j=1:N if I(i,j)<T I2(i,j)=0; else I2(i,j)=255;
原图形 T=91
T=130
T=43
(二) 采用迭代式阈值选择方法对图像 blood.bmp 进行二值化处理, 并和(一)中处理的结果 比较。 f=imread('blood1.bmp'); subplot (121); imshow(f); title('原始图像'); f=double(f); T=(min(f(:))+max(f(:)))/2; done=false; i=0 while ~done R1=find(f<=T); R2=find(f>T); Tnew=(mean(f(R1))+mean(f(R2)))/2 %求 2 个灰度均值的平均值 done=abs(Tnew-T)<1 % abs 为求绝对值
figure,imshow(cut_2),colormap(cool) %显示图像 cut_2,并使用 cool 模型彩色化
ice(交互彩色编辑)函数的参数参照书后面的注释。
四、实验仪器与软件
1.计算机; 2.MATLAB 程序; 3.移动式存储器(软盘、U 盘等) 。 4.记录用的笔、纸。
五、实验报告要求
的变换函数为-sin( ),绿色分量G的变换函数为-cos( );,蓝色分量B的变换函数为sin( ); 显示变换曲线及变换合成的彩色图像并观察彩色变换图像的色调与原始图像灰度之间 的关系; 将RGB的变换公式至少互换一次(例如R与G互换),显示变换曲线、变换结果并观察处理 的结果。 (6)打印全部结果并进行讨论。 利用MATLAB软件实现彩色图像处理的程序:
1.叙述实验过程; 2.提交实验的原始图像和结果图像。
六、思考题
1. 为什么经彩色直方图均衡后的图像除了对比度会有所增强外,还有色调的变化? 2. 实验内容(3)的假彩色处理方案是否可以有多种?若有,请估计其它方案的可能结 果。 3. 在实验内容(4)中,对于灰度切片处理的图像 head.gif 使用多少级切片比较合适?