文档库 最新最全的文档下载
当前位置:文档库 › 数字图像处理-实验十-全局阈值图像分割

数字图像处理-实验十-全局阈值图像分割

数字图像处理-实验十-全局阈值图像分割
数字图像处理-实验十-全局阈值图像分割

实验十全局阈值图像分割

一、实验目的

(1)了解图像分割的基本原理与方法

(2)掌握直方图法图像分割的方法

二、实验条件

(1)基于MATLAB计算机软件

(2)典型的灰度、彩色图像文件

三、实验原理

采用差分、梯度、拉普拉斯算子及各种高通滤波处理方法可以对图像边缘进行检测。检测的方法有梯度算子,拉普拉斯算子,方向算子,坎尼算子,各种方法实现的原理可以参考本章中的相关各节内容。

四、实验内容

(1)对给定图像的直方图进行观察,并估计恰当的阈值,以此为基准实现图像分割,显示分割结果。

(2)微调阈值,观察图像分割结果导致的细微变化,并给于相应的分析解释

五、实验步骤

1、对给定图像的直方图进行观察,并估计恰当的阈值,以此为基准实现图像分割,显示分割结果。

(1)代码如下所示

I=imread('b.jpg');

J=rgb2gray(I);

subplot(121);imshow(J);

%imhist(J); %画出直方图

T=100;

S=size(J);

for i=1:S(1)

for j=1:S(2)

if J(i,j)>=T

J(i,j)=255; %大于阈值的值赋值为255

else

J(i,j)=0; %小于阈值的值赋值为0

end

end

end

subplot(122);imshow(uint8(J));显示分割后的图像

(2)图像显示结果

图一 原图像

050100150200250

图三 原图像直方图

通过对直方图的观察,可以选定一个阈值为100,其分割后的图像如图三所示:

图三阈值为100的分割图像

2、微调阈值,观察图像分割结果导致的细微变化,并给于相应的分析解释(1)阈值T=150

图四阈值为150

分析与解释:由分割后的图像可以容易地看出,图像明显变暗了,由于大于阈值的像素变少了,即被赋值为255的像素变少了。

(2)阈值为70

图五阈值为70

分析与解释:由分割后的图像可以容易地看出,图像明显变白了,由于大于阈值的像素变多了,即被赋值为255的像素变多了。

六、讨论与分析

数字图像处理实验1

实验一 实验内容和步骤 练习图像的读取、显示和保存图像数据,步骤如下: (1)使用命令figure(1)开辟一个显示窗口 (2)读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内显示、二值图像和灰度图像,注上文字标题。 (3)保存转换后的灰度图像和二值图像 (4)在同一个窗口显示转换后的灰度图像的直方图 I=imread('BaboonRGB.bmp'); figure,imshow(I); I_gray=rgb2gray(I); figure,imshow(I_gray); I_2bw=Im2bw(I_gray); figure,imshow(I_2bw); subplot(1,3,1),imshow(I),title('RGB图像'); subplot(1,3,2),imshow(I_gray),title('灰度图像'); subplot(1,3,3),imshow(I_2bw),title('二值图像'); imwrite(I_gray,'Baboongray.png'); imwrite(I_2bw,'Baboon2bw.tif'); figure;imhist(I_gray);

RGB 图 像灰度图 像二值图 像 050100150200250 500 1000 1500 2000 2500 3000

(5)将原RGB 图像的R 、G 、B 三个分量图像显示在figure(2)中,观察对比它们的特点,体会不同颜色所对应的R 、G 、B 分量的不同之处。 [A_RGB,MAP]=imread('BaboonRGB.bmp'); subplot(2,2,1),imshow(A_RGB),title('RGB'); subplot(2,2,2),imshow(A_RGB(:,:,1)),title('R'); subplot(2,2,3),imshow(A_RGB(:,:,2)),title('G'); subplot(2,2,4),imshow(A_RGB(:,:,3)),title('B'); (6)将图像放大1.5倍,插值方法使用三种不同方法,在figure(3)中显示放大后的图像,比较不同插值方法的结果有什么不同。将图像放大到其它倍数,重复实验;A=imread('BaboonRGB.bmp'); figure(3),imshow(A),title('原图像'); B=imresize(A,1.5,'nearest'); figure(4),imshow(B),title('最邻近法') C=imresize(A,1.5,'bilinear'); ; figure(5),imshow(C),title('双线性插值'); D=imresize(A,1.5,'bicubic'); figure(6),imshow(D),title('双三次插值 '); RGB R G B

otsu自适应阈值分割的算法描述和opencv实现,及其在肤色检测中的应用

otsu算法选择使类间方差最大的灰度值为阈值,具有很好的效果 算法具体描述见otsu论文,或冈萨雷斯著名的数字图像处理那本书 这里给出程序流程: 1、计算直方图并归一化histogram 2、计算图像灰度均值avgValue. 3、计算直方图的零阶w[i]和一级矩u[i] 4、计算并找到最大的类间方差(between-class variance) variance[i]=(avgValue*w[i]-u[i])*(avgValue*w[i]-u[i])/(w[i]*(1-w[i])) 对应此最大方差的灰度值即为要找的阈值 5、用找到的阈值二值化图像 我在代码中做了一些优化,所以算法描述的某些地方跟程序并不一致 otsu代码,先找阈值,继而二值化 // implementation of otsu algorithm // author: onezeros(@https://www.wendangku.net/doc/e28252510.html,) // reference: Rafael C. Gonzalez. Digital Image Processing Using MATLAB void cvThresholdOtsu(IplImage* src, IplImage* dst) { int height=src->height; int width=src->width; //histogram float histogram[256]= {0}; for(int i=0; iimageData+src->widthStep*i; for(int j=0; j

图像的阈值分割及边缘检测技术

数字图像处理实验报告 题目:图像的阈值分割及边缘检测技术 班级: 姓名: 学号:

图像的阈值分割及边缘检测技术 一、实验目的 1、了解图像的分割技术,掌握图像的全局阈值分割技术并通过MATLAB实现; 2、了解图像的边缘检测,掌握梯度算子图像边缘检测方法。 二、实验内容 1、基于直方图的全局阈值图像分割方法; 2、Edge命令(roberts,perwitt,sobel,log,canny),实现边缘检测。 三、实验原理 1、全局阈值是最简单的图像分割方法。其中,直方图法的原理如下:想做出图 像的直方图,若其直方图呈双峰且有明显的谷底,则可以讲谷底点所对应的灰度值作为阈值T,然后根据该阈值进行分割,九可以讲目标从图像中分割出来。这种方法是用于目标和背景的灰度差较大且直方图有明显谷底的情况。 2、用于边缘检测的梯度算子主要有Roberts算子、Prewitt算子、Sobel算子。 这三种检测算子中,Roberts算子定位精度较高,但也易丢失部分边缘,抗噪声能力差,适用于低噪声、陡峭边缘的场合。Prewitt算子、Sobel算子首先对图像做平滑处理,因此具有一定的抑制噪声的能力,但不能排除检测结果中的虚假边缘,易出现多像素宽度。

四、实验步骤 1、全局阈值分割: ①读取一张图像; ②生成该图像的直方图; ③根据直方图双峰产生的低谷估计阈值T; ④依次读取图像各个点的像素,若大于阈值,则将像素改为255,若小于 阈值,则将该像素改为0; 实验代码如下: I=imread('cameraman.tif'); %读取一张图像 subplot(221);imshow(I); %显示该图像 subplot(222);imhist(I); %生成该图像的直方图 T=60; %根据直方图估计阈值T为60 [m,n]=size(I); %取图像的大小为【m,n】 for i=1:m %依次读取图像各个点的像素,若大于阈 值,则将像素改为255,若小于阈值, 则将该像素改为0 for j=1:n if I(i,j)>=T I(i,j)=255; else I(i,j)=0; end end

数字图像处理实验报告

数字图像处理实验报告 实验一数字图像基本操作及灰度调整 一、实验目的 1)掌握读、写图像的基本方法。 2)掌握MATLAB语言中图像数据与信息的读取方法。 3)理解图像灰度变换处理在图像增强的作用。 4)掌握绘制灰度直方图的方法,理解灰度直方图的灰度变换及均衡化的方 法。 二、实验内容与要求 1.熟悉MATLAB语言中对图像数据读取,显示等基本函数 特别需要熟悉下列命令:熟悉imread()函数、imwrite()函数、size()函数、Subplot()函数、Figure()函数。 1)将MATLAB目录下work文件夹中的forest.tif图像文件读出.用到imread, imfinfo 等文件,观察一下图像数据,了解一下数字图像在MATLAB中的处理就是处理一个矩阵。将这个图像显示出来(用imshow)。尝试修改map颜色矩阵的值,再将图像显示出来,观察图像颜色的变化。 2)将MATLAB目录下work文件夹中的b747.jpg图像文件读出,用rgb2gray() 将其 转化为灰度图像,记为变量B。 2.图像灰度变换处理在图像增强的作用 读入不同情况的图像,请自己编程和调用Matlab函数用常用灰度变换函数对输入图像进行灰度变换,比较相应的处理效果。 3.绘制图像灰度直方图的方法,对图像进行均衡化处理 请自己编程和调用Matlab函数完成如下实验。 1)显示B的图像及灰度直方图,可以发现其灰度值集中在一段区域,用 imadjust函 数将它的灰度值调整到[0,1]之间,并观察调整后的图像与原图像的差别,调整后的灰

度直方图与原灰度直方图的区别。 2) 对B 进行直方图均衡化处理,试比较与源图的异同。 3) 对B 进行如图所示的分段线形变换处理,试比较与直方图均衡化处理的异同。 图1.1 分段线性变换函数 三、实验原理与算法分析 1. 灰度变换 灰度变换是图像增强的一种重要手段,它常用于改变图象的灰度范围及分布,是图象数字化及图象显示的重要工具。 1) 图像反转 灰度级范围为[0, L-1]的图像反转可由下式获得 r L s --=1 2) 对数运算:有时原图的动态范围太大,超出某些显示设备的允许动态范围, 如直接使用原图,则一部分细节可能丢失。解决的方法是对原图进行灰度压缩,如对数变换: s = c log(1 + r ),c 为常数,r ≥ 0 3) 幂次变换: 0,0,≥≥=γγc cr s 4) 对比拉伸:在实际应用中,为了突出图像中感兴趣的研究对象,常常要求 局部扩展拉伸某一范围的灰度值,或对不同范围的灰度值进行不同的拉伸处理,即分段线性拉伸: 其对应的数学表达式为:

基于灰度直方图的图像分割阈值自适应选取方法

中北大学 毕业设计(论文)任务书 学院、系: 专业: 学生姓名:车永健学号: 设计(论文)题目:基于灰度直方图的图像分割阈值自适应选取方法 起迄日期: 2015年3月9日~2015年6月20日设计(论文)地点: 指导教师:郭晨霞 系主任: 发任务书日期:2015年 2 月25 日

任务书填写要求 1.毕业设计(论文)任务书由指导教师根据各课题的具体情况填写,经学生所在系的负责人审查、系领导签字后生效。此任务书应在毕业设计(论文)开始前一周内填好并发给学生; 2.任务书内容必须用黑墨水笔工整书写或按教务处统一设计的电子文档标准格式(可从教务处网页上下载)打印,不得随便涂改或潦草书写,禁止打印在其它纸上后剪贴; 3.任务书内填写的内容,必须和学生毕业设计(论文)完成的情况相一致,若有变更,应当经过所在专业及系主管领导审批后方可重新填写; 4.任务书内有关“学院、系”、“专业”等名称的填写,应写中文全称,不能写数字代码。学生的“学号”要写全号(如020*******,为10位数),不能只写最后2位或1位数字; 5.有关年月日等日期的填写,应当按照国标GB/T 7408—94《数据元和交换格式、信息交换、日期和时间表示法》规定的要求,一律用阿拉伯数字书写。如“2004年3月15日”或“2004-03-15”。

毕业设计(论文)任务书

毕业设计(论文)任务书 3.对毕业设计(论文)课题成果的要求〔包括毕业设计(论文)、图纸、实物样品等): 1、论文一份; 2、程序代码及图像结果; 3、英文翻译一份。 4.毕业设计(论文)课题工作进度计划: 起迄日期工作内容 2015年 3月 9 日~ 3 月20日 4 月 1 日~ 4月 20 日 4 月 21 日~ 5月 10 日 5 月 11 日~ 6月 15 日 6 月 16 日~ 6月 19 日查找资料,完成开题报告; 学习有关知识,方案确定,完成中期报告;完善算法并仿真验证; 撰写、修改、评阅毕业论文; 论文答辩 学生所在系审查意见: 系主任: 年月日

根据阈值的图像分割方法

课程结业论文 课题名称基于阈值的图像分割方法姓名湛宇峥 学号1412202-24 学院信息与电子工程学院专业电子信息工程 指导教师崔治副教授

2017年6月12日 湖南城市学院课程结业论文诚信声明 本人郑重声明:所呈交的课程结业论文,是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议,除文中已经注明引用的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担

目录 摘要 (1) 关键词 (1) ABSTRACT (2) KEY WORDS (2) 引言 (3) 1基于点的全局阈值选取方法 (4) 1.1最大类间交叉熵法 (5) 1.2迭代法 (6) 2基于区域的全局阈值选取方法 (7)

2.1简单统计法 (8) 2.3 直方图变化法 (9) 3局部阈值法和多阈值法 (10) 3.1水线阈值算法 (11) 3.2变化阈值法 (12) 4仿真实验 结论 (12) 参考文献 (13) 附录

基于阈值的图像分割方法 摘要:图像分割多年来一直受到人们的高度重视,至今这项技术也是趋于成熟,图像分割方法类别也是不胜枚举,近年来每年都有上百篇有关研究报道发表。图像分割是由图像处理进到图像分析的关键环节,是指把图像分成各具特性的区域并提取出有用的目标的技术和过程。在日常生活中,人们对图片的要求也是有所提高,在对图像的应用中,人们经常仅对图像中的某些部分感兴趣,这些部分就对应图像中的特定的区域,为了辨识和分析目标部分,就需要将这些有关部分分离提取出来,因此就要应用到图像分割技术。 关键词:图像分割;阈值;matlab

数字图像处理实验 实验二

实验二MATLAB图像运算一、实验目的 1.了解图像的算术运算在数字图像处理中的初步应用。 2.体会图像算术运算处理的过程和处理前后图像的变化。 二、实验步骤 1.图像的加法运算-imadd 对于两个图像f x,y和 (x,y)的均值有: g x,y=1 f x,y+ 1 (x,y) 推广这个公式为: g x,y=αf x,y+β (x,y) 其中,α+β=1。这样就可以得到各种图像合成的效果,也可以用于两张图像的衔接。说明:两个示例图像保存在默认路径下,文件名分别为'rice.png'和'cameraman.tif',要求实现下图所示结果。 代码: I1 = imread('rice.png'); I2 = imread('cameraman.tif'); I3 = imadd(I1, I2,'uint8'); I4 = imadd(I1, I2,'uint16'); subplot(2, 2, 1), imshow(I1), title('?-ê?í???1'); subplot(2, 2, 2), imshow(I2), title('?-ê?í???2'); subplot(2, 2, 3), imshow(I3), title('8??í?????ê?'); subplot(2, 2, 4), imshow(I4), title('16??í?????ê?'); 结果截图:

2.图像的减法运算-imsubtract 说明: 背景图像可通过膨胀算法得到background = imopen(I,strel('disk',15));,要求实现下图所示结果。 示例代码如下: I1 = imread('rice.png'); background = imerode(I1, strel('disk', 15)); rice2 = imsubtract(I1, background); subplot(2, 2, 1), imshow(I1), title('?-ê?í???'); subplot(2, 2, 2), imshow(background), title('±3?°í???'); subplot(2, 2, 3), imshow(rice2), title('′|àíoóμ?í???'); 结果截图: 3.图像的乘法运算-immultiply

南昌大学-数字图像处理实验报告1-8(全)

NANCHANG UNIVERSITY 数字图象处理实验报告 专业:通信工程 班级:121班 学号:6100212024 学生姓名:徐万然 2015年4月20日

目录 实验1:图像信号的数字化 实验2:图像灰度级修正 实验3:图像的平滑滤波 实验4:图像的锐化处理 实验5:图像的伪彩色处理 实验6:图像的几何变化 实验7:图像的复原处理 实验8:图像的正交变换

实验一:图像信号的数字化 一、实验目的 通过本实验了解图像的数字化参数取样频率(象素个数)、量化层数与图像质量的关系。 二、实验内容 编写并调试图像数字化程序,要求参数k,n 可调。其中k为亚抽样比例;n 为量化比特数;选择任意图像进行处理,在显示器上观察各种数字化参数组合下的图像效果。 三、实验程序 f=imread('Water lilies.jpg'); %读入一张图片 f1=rgb2gray(f); %将rgb值转换为灰度图 subplot(3,3,1),imshow(f),title('灰度图'); %显示这幅图像 f2=im2bw(f1); %将图像转换为二值图 subplot(3,3,2),imshow(f2),title('二值图'); %显示这幅图像 f3=~f2; %对图像进行取反操作 subplot(3,3,3),imshow(f3),title('取反图'); %显示这幅图像 f4=imnoise(f,'gaussian');% subplot(3,3,4),imshow(f4),title('加高斯噪声图'); %对象进行预操作,加入高斯噪声 h=ones(5,5)/25; %设计一个5*5的均值滤波器 f5=imfilter(f4,h); %对图像进行均值滤波 subplot(3,3,5),imshow(f5),title('平滑滤波图'); %显示这幅图像 f6=imadjust(f,[0,1],[0,1]); %对图像灰度值进行归一化处理 subplot(3,3,6),imshow(f6),title('灰度级修正图1'); %显示这幅图像 f7=imadjust(f,[0,0.8],[0,1]); %降低输入的灰度值 subplot(3,3,7),imshow(f7),title('灰度级修正图2'); %显示这幅图像

数字图像处理实验

《数字图像处理》 实验报告 学院:信息工程学院 专业:电子信息工程 学号: 姓名: 2015年6月18日

目录 实验一图像的读取、存储和显示 (2) 实验二图像直方图分析 (6) 实验三图像的滤波及增强 (15) 实验四噪声图像的复原 (19) 实验五图像的分割与边缘提取 (23) 附录1MATLAB简介 (27)

实验一图像的读取、存储和显示 一、实验目的与要求 1.熟悉及掌握在MATLAB中能够处理哪些格式图像。 2.熟练掌握在MATLAB中如何读取图像。 3.掌握如何利用MATLAB来获取图像的大小、颜色、高度、宽度等等相关信息。 4.掌握如何在MATLAB中按照指定要求存储一幅图像的方法。 5.图像的显示。 二、实验原理 一幅图像可以被定义为一个二维函数f(x,y),其中x和y是空间(平面)坐标,f 在任何坐标处(x,y)处的振幅称为图像在该点的亮度。灰度是用来表示黑白图像亮度的一个术语,而彩色图像是由单个二维图像组合形成的。例如,在RGB彩色系统中,一幅彩色图像是由三幅独立的分量图像(红、绿、蓝)组成的。因此,许多为黑白图像处理开发的技术适用于彩色图像处理,方法是分别处理三副独立的分量图像即可。图像关于x和y坐标以及振幅连续。要将这样的一幅图像转化为数字形式,就要求数字化坐标和振幅。将坐标值数字化成为取样;将振幅数字化成为量化。采样和量化的过程如图1所示。因此,当f的x、y分量和振幅都是有限且离散的量时,称该图像为数字图像。 三、实验设备 (1) PC计算机 (2) MatLab软件/语言包括图像处理工具箱(Image Processing Toolbox) (3) 实验所需要的图片 四、实验内容及步骤 1.利用imread( )函数读取一幅图像,假设其名为flower.tif,存入一个数组中; 2.利用whos 命令提取该读入图像flower.tif的基本信息; 3.利用imshow()函数来显示这幅图像; 4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息; 5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg文件设为flower.jpg语法:imwrite(原图像,新图像,‘quality’,q), q取0-100。 6.同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp图像,设为flower.bmp。 7.用imread()读入图像:Lenna.jpg 和camema.jpg; 8.用imfinfo()获取图像Lenna.jpg和camema.jpg 的大小;

基于阈值的灰度图像分割

对以CPT算法为主的灰度阈值化方法的研究 目录: 第一章:绪论 第二章:图像的预处理 第三章:图像分割概述 第四章:灰度阈值化图像分割方法 第五章:CPT算法及其对它的改进 第六章:编程环境及用PhotoStar对改进的CPT算法和其他算法的实现 第七章:实验结果与分析 第一章:绪论 1.1数字图像处理技术的发展 人类传递信息的主要媒介是语音和图像。据统计,在人类接受的信息中,听觉信息占20%,视觉占60%,其他如味觉、触觉、嗅觉总的加起来不过占20%。所以,作为传递信息的重要媒体和手段——图像信息是十分重要的。【5】对于图像信息的处理,即图像处理当然对信息的传递产生很大影响。 数字图像处理技术起源于20世纪20年代,当时通过海底电缆从伦敦到纽约传输了一幅图片,它采用了数字压缩技术。1964年美国的喷气处理实验室处理了太空船“徘徊者七号”发回的月球照片,这标志着第三代计算机问世后数字图像处理概念得到应用。其后,数字图像处理技术发展迅速,目前已成为工程学、计算机科学、生物学、医学等领域各学科之间学习和研究的对象。 经过人们几十年的努力,数字图像处理这一学科已逐渐成熟起来。人们总是试图把各个学科应用到数字图像处理中去,并且每产生一种新方法,人们也会尝试它在数字图像处理中的应用。同时,数字图像处理也在很多学科中发挥着它越来越大的作用。 1.2图像分割概述和本论文的主要工作 图像分割的目的是把图像空间分成一些有意义的区域,是数字图像处理中的重要问题,是计算机视觉领域低层次视觉问题中的重要问题,同时它也是一个经典的难题。几十年来,很多图像分割的方法被人们提出来,但至今它尚无一个统一的理论。 图像分割的方法很多,有早先的阈值化方法、最新的基于形态学方法和基于神经网络的方法。 阈值化方法是一种古老的方法,但确是一种十分简单而有效的方法,近几十年人们对阈值化方法不断完善和探索,取得了显著的成就,使得阈值化方法在实际应用中占有很重要的地位。 本文将主要对图像分割的阈值化方法进行探讨。在对阈值化方法的研究过程中,本人首先将集中精力对效果比较好的阈值化方法进行探讨,并对其存在的不足加以改进,从而作出性能优良的计算机算法;由于目前很多方法各有其特点,所以将对具有不同特点的图像用不同的方法处理进行研究。在论文正文部分还将其应用到实践中去,并对其加以评价。 第二章:图像的预处理 2.1图像预处理的概述 由于切片染色和输入光照条件及采集过程电信号的影响,所采集的医学图

数字图像处理——彩色图像实验报告

6.3实验步骤 (1)对彩色图像的表达和显示 * * * * * * * * * * * *显示彩色立方体* * * * * * * * * * * * * rgbcube(0,0,10); %从正面观察彩色立方体 rgbcube(10,0,10); %从侧面观察彩色立方 rgbcube(10,10,10); %从对角线观察彩色立方体 %* * * * * * * * * *索引图像的显示和转换* * * * * * * * * * f=imread('D:\Picture\Fig0604(a)(iris).tif'); figure,imshow(f);%f是RGB真彩图像 %rgb图像转换成8色索引图像,不采用抖动方式 [X1,map1]=rgb2ind(f,8,'nodither'); figure,imshow(X1,map1); %采用抖动方式转换到8色索引图像 [X2,map2]=rgb2ind(f,8,'dither'); figure,imshow(X2,map2); %显示效果要好一些 g=rgb2gray(f); %f转换为灰度图像 g1=dither(g);%将灰色图像经过抖动处理,转换打二值图像figure,imshow(g);%显示灰度图像 figure,imshow(g1);%显示抖动处理后的二值图像 程序运行结果:

彩色立方体原图 不采用抖动方式转换到8色索引图像采用抖动方式转换到8色索引图像 灰度图像抖动处理后的二值图像

(2)彩色空间转换 f=imread('D:\Picture\Fig0604(a)(iris).tif'); figure,imshow(f);%f是RGB真彩图像 %转换到NTSC彩色空间 ntsc_image=rgb2ntsc(f); figure,imshow(ntsc_image(:,:,1));%显示亮度信息figure,imshow(ntsc_image(:,:,2));%显示色差信息figure,imshow(ntsc_image(:,:,3));%显示色差信息 %转换到HIS彩色空间 hsi_image=rgb2hsi(f); figure,imshow(hsi_image(:,:,1));%显示色度信息figure,imshow(hsi_image(:,:,2)); %显示饱和度信息figure,imshow(hsi_image(:,:,3));%显示亮度信息 程序运行结果: 原图 转换到NTSC彩色空间

数字图像处理实验

(1)矩阵图像的傅里叶变换 f=zeros(30,30); f(5:24,13:17)=1; imshow(f,'notruesize') F=fft2(f); F2=log(abs(F)); figure;imshow(F2,[-1 5],'notruesize');colormap(jet);colorbar;

-0.5 00.5 11.522.533.544.5 (2)图像的傅里叶变换 I=imread('concordorthophoto.png'); imshow(I); B=ffshift(fft2(I)); figure; imshow(log(abs(B)),[]),colorbar;

图像离散余弦变换 RGB=imread('hestain.png'); I=rgb2gray(RGB); imshow(RGB); J=dct2(I); figure,imshow(log(abs(J)),[]),colorbar; J(abs(J)<10)=0; K=idct2(J)/255; figure,imshow(K)

二(1) 直方图均衡化增强图像对比度程序I=imread('trees.tif'); J=imnoise(I,'salt & pepper',0.02); imshow(I);figure,imshow(J) K1=filter2(fspecial('average',3),J)/255; K2=filter2(fspecial('average',5),J)/255; K3=filter2(fspecial('average',7),J)/255; figure,imshow(K1) figure,imshow(K2) figure,imshow(K3)

数字图像灰度阈值的图像分割技术matlab

1.课程设计的目的 (1)使学生通过实验体会一些主要的分割算子对图像处理的效果,以及各 种因素对分割效果的影响 (2)使用Matlab软件进行图像的分割 (3)能够进行自行评价各主要算子在无噪声条件下和噪声条件下的分割 性能 (4)能够掌握分割条件(阈值等)的选择 (5)完成规定图像的处理并要求正确评价处理结果,能够从理论上做出合 理的解释 2.课程设计的要求 (1)能对图像文件(bmp,jpg,tiff,gif)进行打开,保存,退出等功能操作 (2)包含功能模块:图像的边缘检测(使用不同梯度算子和拉普拉斯算子)(3)封闭轮廓边界 (4)区域分割算法:阈值分割,区域生长等

3.前言 3.1图像阈值分割技术基本原理 所谓图像分割是指根据灰度、彩色、空间纹理、几何形状等特征把图像划分成若干个互不相交的区域,使得这些特征在同一区域内,表现出一致性或相似性,而在不同区域间表现出明显的不同。简单的讲,就是在一幅图像中,把目标从背景中分离出来,以便于进一步处理。图像分割是图像处理与计算机视觉领域低层次视觉中最为基础和重要的领域之一,它是对图像进行视觉分析和模式识别的基本前提。同时它也是一个经典难题,到目前为止既不存在一种通用的图像分割方法,也不存在一种判断是否分割成功的客观标准]5[。 在对图像的研究和应用中,人们往往仅对图像中的某些部分感兴趣,这些部分称为目标或前景(其他部分称为背景),他们一般对应图像中特定的、具有独特性质的区域。为了辨识和分析目标,需要将他们分离提取出来,在此基础上才有可能对目标进一步利用。图像分割就是指把图像分成格局特性的区域并提取出感兴趣目标的技术和过程。这里特性可以是象素的灰度、颜色、纹理等,预先定义的目标可以对应单个区域,也可以对应多个区域。现有的图像分割算法有:阈值分割、边缘检测和区域提取法。本文着重研究基于阈值法的图像分割技术。 若图像中目标和背景具有不同的灰度集合:目标灰度集合与背景灰度集合,且两个灰度集合可用一个灰度级阈值T进行分割。这样就可以用阈值分割灰度级的方法在图像中分割出目标区域与背景区域,这种方法称为灰度阈值分割方法。 在物体与背景有较强的对比度的图像中,此种方法应用特别有效。比如说物体内部灰度分布均匀一致,背景在另一个灰度级上也分布均匀,这时利用阈值可以将目标与背景分割得很好。如果目标和背景的差别是某些其他特征而不是灰度特征时,那么先将这些特征差别转化为灰度差别,然后再应用阈值分割方法进行处理,这样使用阈值分割技术也可能是有效的

数字图像处理实验八

数字图像处理 实验 实验八:彩色图像处理 学院:信息工程学院 姓名: 学号: 专业及班级: 指导教师:

一、实验目的 使用MatLab 软件对图像进行彩色处理。使学生通过实验熟悉使用MatLab软件进行图像彩色处理的有关方法,并体会到图像彩色处理技术以及对图像处理的效果。二、实验内容 要求学生能够完成彩色图像的分析,能正确讨论彩色图像的亮度、色调等性质;会对彩色图像进行直方图均衡,并能正确解释均衡处理后的结果;能够对单色图像进行伪彩色处理、利用多波长图像进行假彩色合成、进行单色图像的彩色变换。 利用MATLAB软件实现彩色图像处理的程序: rgb_image=imread('flower1.tif'); %读取图像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); %图像flower1.tif的亮度 fI=yiq_image(:,:,2); %图像flower1.tif的色调 fQ=yiq_image(:,:,3); %图像flower1.tif的饱和度 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); %用近红外图像代替R分量 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]); %提取灰度在128-256之间的像素

数字图像处理实验一

大学实验报告 学院:计算机科学与技术专业:信息安全班级:131 姓名学号实验组实验时间2016/4/22 指导教师成绩 实验项目名称图像基本操作 实验目的 利用MATLAB软件,熟悉图像的数据矩阵操作、图像的类型转换及图像的存储等基本操作。 1.熟悉图像矩阵的基本操作 2.掌握图像数据类型转换及图像类型转换 3.掌握图像文件的读写 4.掌握图像及灰度图像直方图的显示 5.掌握图像缩放和旋转 实验要求 利用MATLAB软件,熟悉图像的数据矩阵操作、图像的类型转换及图像的存储等基本操作。 1.熟悉图像矩阵的基本操作 2.掌握图像数据类型转换及图像类型转换 3.掌握图像文件的读写 4.掌握图像及灰度图像直方图的显示 5.掌握图像缩放和旋转 实验原理1.关于图像矩阵 MATLAB中图像数据以矩阵方式的存储。所以有必要学会关于矩阵的操作,由于篇幅有限,这里只作简要的介绍。 生成矩阵的函数有: eye 生成单位矩阵 ones全1阵 zeros 全零阵 rand 均匀随机阵 randn 正态随机阵 2.图像数据类型及图像类型 2.1 图像数据类型转换 MATLAB中图像数据矩阵的存储方式为双精度(double)类型即64位浮点数。而存储图像时MATLAB有时采用无符号整型(uint8)即图像矩阵中的每个数据占用一个字节。由于大多数运算和函数(比如最基本的矩阵加减运算)都不支持uint8类型,所以运算时通常要将图像转换成 double型。 函数double将数据转换为双精度浮点类型,调用格式为: X64=double(x8) /256 2.2 图像类型及转换

在MATLAB中,一幅图像可能包含一个数据矩阵,也可能有一个颜色映像表矩阵。MATLAB图像处理工具箱支持四种图像类型,其区别在于数据矩阵元素的不同含意。它们是: ● 真彩色图像 ● 索引图像 ● 灰度图像 ● 二值图像 (1)真彩色图像 真彩色图像又称RGB图像,对于一个尺寸为M×N的彩色图像来说,在MATLAB中则存储为一个M×N×3的多维数组,像素的颜色由保存在像素位置上的R、G、B的强度值的组合来确定。如果需要知道图像A中(x,y)处的像素值,则可以使用这样的代码A(x,y,1:3)。 (2)索引图像 MATLAB中的索引图像包含两个结构,一个是调色板,一个是图像数据矩阵。调色板是一个m×3的色彩映射矩阵,矩阵的每一行都代表一种色彩,与真彩色图像相同,通过3个分别代表红、绿、蓝颜色强度的双精度数,形成一种特定的颜色。调色板通常和索引图像存在一起,当读入图像时,MATLAB同时加载调色板和图像。 (3)灰度图像 灰度图像就是只有强度信息,而没有颜色信息的图像。存储灰度图像只需要一个数据矩阵,矩阵的每个元素表示对应位置像素的灰度值,灰度图像的数据类型可以是doubIe类型,这时值域为[0,1],也可以uint8类刑,值域是[0,255]。 (4)二值图像 二值图像就是只有黑白两种值的图像,我们可以把它看作是特殊的灰度图像。二值图像只需一个数据矩阵来存储,每个像素只取0或1。 MATLAB提供了若干函数,用于图像类型的转换,这些函数如下所示: ●rgb2gray 将RGB图像转换成灰度图像 ●Gray2ind 将灰度图像转换成索引图像 ●Im2bw 设定阈值将图像转换为二值图像 ●Im2double 将图像数据阵列转换为double型 ●Im2unit8 将图像数据阵列转换为unit8型 ●Im2unit16 将图像数据阵列转换为unit16型 ●Ind2gray 将索引图像转换为灰度图像 ●Ind2rgb 将索引图像转换成真彩色图像 2.3 图像读写及显示 MATLAB为用户提供了专门的函数以从图像格式的文件中读写图像数据。 (1)图像文件的读取 利用imread函数可以完成图像文件的读取操作,常见调用格式为: A = imread(FILENAME,FMT) 其作用是将文件名用字符串FILENAME表示的、扩展名用字符串FMT(表示图像文件格式)表示的图像文件中的数据读到矩阵A中。如果FILENAME所指的为灰度图像,则A为M×N的二维矩阵;如果FILENAME所指的为RGB图像,则A为M×N×3的三维矩阵。 (2)图像文件的写入(保存) 利用imwrite函数完成图像的写入操作,也完全支持上述各种图像文件的格式,其常用的调用格式为: imwrite(A,FILENAME,FMT)

数字图像处理实验一

数字图像处理—实验一 一.实验内容: 图像灰度变换 二.实验目的: 学会用Matlab软件对图像灰度进行变换;感受各种不同的灰度变换方法对最终图像效果的影响。 三.实验步骤: 1.获取实验用图像:rice.jpg. 使用imread函数将图像读入Matlab。 程序: clc;clear; figure; subplot(4,4,1); i = imread('rice.png'); i = im2double(i); imshow(i);title('1'); 2.产生灰度变换函数T1,使得: 0.3r r < 0.35 s = 0.105 + 2.6333(r – 0.35) 0.35 ≤r ≤0.65

1 + 0.3(r – 1) r > 0.65 用T1对原图像rice.jpg进行处理,使用imwrite函数保存处理后的新图像。程序: subplot(4,4,2); r=[0:0.001:1]; s=[r<0.35].*r*0.3+[r<=0.65].*[r>=0.35].*(0.105+2.6333*(r-0.35))+[r>0.65].*(1 +0.3*(r-1)); plot(r,s);title('2p'); subplot(4,4,3); T1=[i<0.35].*i*0.3+[i<=0.65].*[i>=0.35].*(0.105+2.6333*(i-0.35))+[i>0.65].*( 1+0.3*(i-1)); imshow(T1);title('2i'); imwrite(T1,'rice_T1.jpg','jpg');

3.产生灰度变换函数T2,使得: 用T2对原图像rice.jpg进行处理,使用imwrite保存处理后的新图像。 %3 subplot(4,4,4); r = [0:0.001:1];

自适应阈值化的函数

自适应阈值化的函数为: AdaptiveThreshold 自适应阈值方法 void cvAdaptiveThreshold( const CvArr* src, CvArr* dst, double max_value, int adaptive_method=CV_ADAPTIVE_THRESH_MEAN_C, int threshold_type=CV_THRESH_BINARY, int block_size=3, double param1=5 ); src 输入图像. dst 输出图像. max_value 使用CV_THRESH_BINARY 和CV_THRESH_BINARY_INV 的最大值. adaptive_method 自适应阈值算法使用:CV_ADAPTIVE_THRESH_MEAN_C 或 CV_ADAPTIVE_THRESH_GAUSSIAN_C (见讨论). threshold_type 取阈值类型:必须是下者之一 ?CV_THRESH_BINARY, ?CV_THRESH_BINARY_INV block_size 用来计算阈值的象素邻域大小: 3, 5, 7, ... param1 与方法有关的参数。对方法CV_ADAPTIVE_THRESH_MEAN_C 和 CV_ADAPTIVE_THRESH_GAUSSIAN_C,它是一个从均值或加权均值提取的常数(见讨论), 尽管它可以是负数。 函数cvAdaptiveThreshold 将灰度图像变换到二值图像,采用下面公式: threshold_type=CV_THRESH_BINARY: dst(x,y) = max_value, if src(x,y)>T(x,y)

数字图像处理实验报告

数字图像处理实验 报告 学生姓名:学号: 专业年级: 09级电子信息工程二班

实验一常用MATLAB图像处理命令 一、实验内容 1、读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题。 实验结果如右图: 代码如下: Subplot (1,3,1) i=imread('E:\数字图像处理\2.jpg') imshow(i) title('RGB') Subplot (1,3,2) j=rgb2gray(i) imshow(j) title('灰度') Subplot (1,3,3) k=im2bw(j,0.5) imshow(k) title('二值') 2、对两幅不同图像执行加、减、乘、除操作,在同一个窗口内分成五个子窗口来分别显示,注上文字标题。 实验结果如右图: 代码如下: Subplot (3,2,1) i=imread('E:\数字图像处理 \16.jpg') x=imresize(i,[250,320]) imshow(x) title('原图x') Subplot (3,2,2) j=imread(''E:\数字图像处理 \17.jpg') y=imresize(j,[250,320]) imshow(y) title('原图y') Subplot (3,2,3) z=imadd(x,y) imshow(z)

title('相加结果');Subplot (3,2,4);z=imsubtract(x,y);imshow(z);title('相减结果') Subplot (3,2,5);z=immultiply(x,y);imshow(z);title('相乘结果') Subplot (3,2,6);z=imdivide(x,y);imshow(z);title('相除结果') 3、对一幅图像进行灰度变化,实现图像变亮、变暗和负片效果,在同一个窗口内分成四个子窗口来分别显示,注上文字标题。 实验结果如右图: 代码如下: Subplot (2,2,1) i=imread('E:\数字图像处理 \23.jpg') imshow(i) title('原图') Subplot (2,2,2) J = imadjust(i,[],[],3); imshow(J) title('变暗') Subplot (2,2,3) J = imadjust(i,[],[],0.4) imshow(J) title('变亮') Subplot (2,2,4) J=255-i Imshow(J) title('变负') 二、实验总结 分析图像的代数运算结果,分别陈述图像的加、减、乘、除运算可能的应用领域。 解答:图像减运算与图像加运算的原理和用法类似,同样要求两幅图像X、Y的大小类型相同,但是图像减运算imsubtract()有可能导致结果中出现负数,此时系统将负数统一置为零,即为黑色。 乘运算实际上是对两幅原始图像X、Y对应的像素点进行点乘(X.*Y),将结果输出到矩阵Z中,若乘以一个常数,将改变图像的亮度:若常数值大于1,则乘运算后的图像将会变亮;叵常数值小于是,则图像将会会暗。可用来改变图像的灰度级,实现灰度级变换,也可以用来遮住图像的某些部分,其典型应用是用于获得掩膜图像。 除运算操作与乘运算操作互为逆运算,就是对两幅图像的对应像素点进行点(X./Y), imdivide()同样可以通过除以一个常数来改变原始图像的亮度,可用来改变图像的灰度级,其典型运用是比值图像处理。 加法运算的一个重要应用是对同一场景的多幅图像求平均值 减法运算常用于检测变化及运动的物体,图像相减运算又称为图像差分运算,差分运算还可以用于消除图像背景,用于混合图像的分离。

相关文档