数字图像处理课程设计(实验报告)
数字图像处理实验报告
数字图像处理实验报告实验一数字图像处理编程基础一、实验目的1. 了解MATLAB图像处理工具箱;2. 掌握MATLAB的基本应用方法;3. 掌握MATLAB图像存储/图像数据类型/图像类型;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);四、实验效果实验二 图像几何变换实验一、实验目的1.学习几种常见的图像几何变换,并通过实验体会几何变换的效果;2.掌握图像平移、剪切、缩放、旋转、镜像等几何变换的算法原理及编程实现;3.掌握matlab 编程环境中基本的图像处理函数。
数字图像处理实验报告——图像分割实验
实验报告课程名称数字图像处理导论专业班级_______________姓名 _______________学号_______________电气与信息学院与谐勤奋求就是创新一.实验目得1.理解图像分割得基本概念;2.理解图像边缘提取得基本概念;3.掌握进行边缘提取得基本方法;4.掌握用阈值法进行图像分割得基本方法.二。
实验内容1.分别用Roberts,Sobel与拉普拉斯高斯算子对图像进行边缘检测。
比较三种算子处理得不同之处;2.设计一个检测图1中边缘得程序,要求结果类似图2,并附原理说明。
3.任选一种阈值法进行图像分割、图1 图2三.实验具体实现1.分别用Roberts,Sobel与拉普拉斯高斯算子对图像进行边缘检测。
比较三种算子处理得不同之处;I=imread(’mri、tif');imshow(I)BW1=edge(I,’roberts’);figure ,imshow(BW1),title(’用Roberts算子’)BW2=edge(I,’sobel’);figure,imshow(BW2),title(’用Sobel算子 ')BW3=edge(I,’log’);figure,imshow(BW3),title(’用拉普拉斯高斯算子’)比较提取边缘得效果可以瞧出,sober算子就是一种微分算子,对边缘得定位较精确,但就是会漏去一些边缘细节.而Laplacian—Gaussian算子就是一种二阶边缘检测方法,它通过寻找图象灰度值中二阶过零点来检测边缘并将边缘提取出来,边缘得细节比较丰富。
通过比较可以瞧出Laplacian-Gaussian算子比sober算子边缘更完整,效果更好。
2.设计一个检测图1中边缘得程序,要求结果类似图2,并附原理说明.i=imread('m83、tif’);subplot(1,2,1);imhist(i);title('原始图像直方图');thread=130/255;subplot(1,2,2);i3=im2bw(i,thread);imshow(i3);title('分割结果’);3.任选一种阈值法进行图像分割、i=imread('trees、tif’);subplot(1,2,1);imhist(i);title('原始图像直方图’);thread=100/255;subplot(1,2,2);i3=im2bw(i,thread);imshow(i3);title('分割结果’)1、分别用Roberts,Sobel与拉普拉斯高斯算子对图像进行边缘检测。
数字图像处理实验报告 (图像编码)
实验三图像编码一、实验内容:用Matlab语言、C语言或C++语言编制图像处理软件,对某幅图像进行时域和频域的编码压缩。
二、实验目的和意义:1. 掌握哈夫曼编码、香农-范诺编码、行程编码2.了解图像压缩国际标准三、实验原理与主要框架:3.1实验所用编程环境:Visual C++6.0(简称VC)3.2实验处理的对象:256色的BMP(BIT MAP )格式图像BMP(BIT MAP )位图的文件结构:(如图3.1)图3.1 位图的文件结构具体组成图:单色DIB 有2个表项16色DIB 有16个表项或更少 256色DIB 有256个表项或更少 真彩色DIB 没有调色板每个表项长度为4字节(32位) 像素按照每行每列的顺序排列每一行的字节数必须是4的整数倍biSize biWidth biHeight biPlanes biBitCount biCompression biSizeImagebiXPelsPerMeter biYPelsPerMeter biClrUsedbiClrImportantbfType=”BM ” bfSizebfReserved1 bfReserved2 bfOffBits BITMAPFILEHEADER位图文件头 (只用于BMP 文件)BITMAPINFOHEADER位图信息头Palette 调色板DIB Pixels DIB 图像数据3.3 数字图像基本概念数字图像是连续图像(,)f x y 的一种近似表示,通常用由采样点的值所组成的矩阵来表示:(0,0)(0,1)...(0,1)(1,0)(1,1)...(1,1).........(1,0)(1,1)...(1,1)f f f M f f f M f N f N f N M -⎡⎤⎢⎥-⎢⎥⎢⎥⎢⎥----⎣⎦每一个采样单元叫做一个像素(pixel ),上式(2.1)中,M 、N 分别为数字图像在横(行)、纵(列)方向上的像素总数。
数字图像处理实验报告
数字图像处理实验报告⼆○⼀⼋~⼆○⼀九学年第⼀学期信息科学与⼯程学院课程设计报告书课程名称:数字图像处理班级:学号:姓名:指导教师:⼆○⼀⼋年⼗⼆⽉⼀、课程设计⽬的:1. 掌握读、写、显⽰图像的基本⽅法。
2. 掌握图像直⽅图的概念、计算⽅法以及直⽅图归⼀化、均衡化⽅法。
3. 掌握图像灰度变换的基本⽅法,理解灰度变换对图像外观的改善效果。
⼆、课程设计内容及要求:1. 读⼊⼀幅图像,判断其是否为灰度图像,如果不是灰度图像,将其转化为灰度图像。
2. 完成灰度图像的直⽅图计算、直⽅图归⼀化、直⽅图均衡化等操作。
3. 完成灰度图像的灰度变换操作,如线性变换、伽马变换、阈值变换(⼆值化)等,分别使⽤不同参数观察灰度变换效果(对灰度直⽅图的影响)。
三、详细设计步骤:1、所使⽤的图像⽂件都保存在Matlab 安装⽬\toolbox\images\imdemos⼦⽬录下。
2、图像的读、写、显⽰操作。
运⽤Matlab 图像处理⼯具箱中的imread函数分别读⼊灰度图像pout.tif、⼆值图像blobs.png 和RGB 图像peppers.png,观察相应的图像矩阵,并运⽤imshow 函数显⽰相应图像。
3、对⼀个RGB 彩⾊图像peppers.png,分别抽取其R、G、B 三个分量层,并显⽰各层图像。
1、以灰度图像pout.tif 为例,运⽤灰度变换法实现图像增强。
2、运⽤Matlab 编程实现灰度直⽅图的统计以及直⽅图均衡化处理过程:(1)计算并绘制原始图像的灰度直⽅图;(2)根据离散累计分布函数,对原始灰度直⽅图进⾏均衡化处理,绘制均衡化后的灰度直⽅图;(3)⽣成均衡化处理后的新图像,显⽰并保存。
(4)⽐较原始图像和新图像的对⽐度。
(1)利⽤Matlab 函数IMNOISE(),在原图上分别叠加⾼斯噪声和椒盐噪声(2)实现均值滤波和中值滤波的功能,去除噪声;(3)调整窗⼝⼤⼩,采⽤对⽐均值滤波中值滤波的性能;1、以灰度图像rice.png 为例,实现Roberts 算⼦、Sobel 算⼦、Prewitt算⼦对其进⾏边缘检测,并实现根据梯度⽣成 5 种不同的增强图像。
数字图像处理的课程设计
数字图像处理的课程设计一、课程目标知识目标:1. 理解数字图像处理的基本概念,掌握图像的数字化表示方法;2. 掌握图像处理的基本操作,如图像变换、滤波、增强和复原;3. 了解常见的图像分割和特征提取方法,并应用于实际问题;4. 掌握图像压缩的基本原理及常用算法。
技能目标:1. 能够运用图像处理软件进行基本的图像编辑和操作;2. 能够编写简单的数字图像处理程序,实现对图像的基本处理功能;3. 能够运用所学的图像处理方法解决实际问题,如图像去噪、图像增强等;4. 能够对图像进行有效的压缩,以适应不同的应用场景。
情感态度价值观目标:1. 培养学生对数字图像处理技术的兴趣和热情,激发其探索精神;2. 培养学生的团队合作意识,学会与他人共同解决问题;3. 增强学生的实际操作能力,使其认识到理论与实践相结合的重要性;4. 引导学生关注图像处理技术在日常生活和各领域的应用,提高其科技素养。
课程性质:本课程为高年级选修课程,旨在使学生掌握数字图像处理的基本原理和方法,培养其实际应用能力。
学生特点:学生具备一定的数学基础和编程能力,对图像处理有一定了解,但尚未深入学习。
教学要求:结合学生特点和课程性质,注重理论与实践相结合,以实际应用为导向,提高学生的动手能力和创新能力。
通过本课程的学习,使学生能够达到上述课程目标,为未来进一步学习和研究打下坚实基础。
二、教学内容1. 数字图像基础:包括图像的数字化表示、图像质量评价、颜色模型等基本概念;- 教材章节:第1章 数字图像处理基础2. 图像增强:介绍直方图均衡化、图像平滑、锐化等增强方法;- 教材章节:第3章 图像增强3. 图像复原:涉及图像退化模型、逆滤波、维纳滤波等复原方法;- 教材章节:第4章 图像复原4. 图像分割与特征提取:包括阈值分割、边缘检测、区域生长等分割方法,以及特征点的提取和描述;- 教材章节:第5章 图像分割与特征提取5. 图像压缩:介绍图像压缩的基本原理,如JPEG、JPEG2000等压缩算法;- 教材章节:第6章 图像压缩6. 数字图像处理应用:分析图像处理在医学、遥感、计算机视觉等领域的应用案例;- 教材章节:第7章 数字图像处理应用教学进度安排:1. 数字图像基础(2学时)2. 图像增强(4学时)3. 图像复原(4学时)4. 图像分割与特征提取(6学时)5. 图像压缩(4学时)6. 数字图像处理应用(2学时)三、教学方法为提高教学效果,本课程将采用以下多样化的教学方法:1. 讲授法:教师通过系统的讲解,使学生掌握数字图像处理的基本概念、原理和方法。
数字图像处理课设报告
数字图像处理课程设计报告细胞识别目录第一部分页脚内容11、实验课题名称----------------------------------------------------------------------------------32、实验目的----------------------------------------------------------------------------------------33、实验内容概要----------------------------------------------------------------------------------3第二部分1、建立工程文件----------------------------------------------------------------------------------32、图像信息获取----------------------------------------------------------------------------------43、如何建立下拉菜单----------------------------------------------------------------------------64、标记Mark点------------------------------------------------------------------------------------65、二值化---------------------------------------------------------------------------------------------96、填洞------------------------------------------------------------------------------------------------97、收缩------------------------------------------------------------------------------------------------108、获取中心点--------------------------------------------------------------------------------------119、细胞计数-----------------------------------------------------------------------------------------1310、All-steps-----------------------------------------------------------------------------------------1311、扩展功能---------------------------------------------------------------------------------------14第三部分12、各步骤结果和错误举例--------------------------------------------------------------------16页脚内容2第四部分13、心得体会----------------------------------------------------------------------------------------22第一部分1、实验课题:细胞识别2、实验目的:对血液细胞切片图片进行各种处理,最终得出细胞的数目、面积等信息。
数字图像处理 实验报告(完整版)
数字图像处理实验一 MATLAB数字图像处理初步一、显示图像1.利用imread( )函数读取一幅图像,假设其名为lily.tif,存入一个数组中;2.利用whos 命令提取该读入图像flower.tif的基本信息;3.利用imshow()函数来显示这幅图像;实验结果如下图:源代码:>>I=imread('lily.tif')>> whos I>> imshow(I)二、压缩图像4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息;5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg文件,设为lily.jpg;语法:imwrite(原图像,新图像,‘quality’,q), q取0-100。
6.同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp图像,设为flily.bmp。
7.用imread()读入图像Sunset.jpg和Winter.jpg;8.用imfinfo()获取图像Sunset.jpg和Winter.jpg的大小;9.用figure,imshow()分别将Sunset.jpg和Winter.jpg显示出来,观察两幅图像的质量。
其中9的实验结果如下图:源代码:4~6(接上面两个) >>I=imread('lily.tif')>> imfinfo 'lily.tif';>> imwrite(I,'lily.jpg','quality',20);>> imwrite(I,'lily.bmp');7~9 >>I=imread('Sunset.jpg');>>J=imread('Winter.jpg')>>imfinfo 'Sunset.jpg'>> imfinfo 'Winter.jpg'>>figure(1),imshow('Sunset.jpg')>>figure(2),imshow('Winter.jpg')三、二值化图像10.用im2bw将一幅灰度图像转化为二值图像,并且用imshow显示出来观察图像的特征。
数字图像处理实验及报告(含源码)
大学数字图像处理实验报告设计题目:数字图像处理专业名称:软件工程班级: 1 学号: 1 姓名: MARK 指导教师:2016年5月16日目录实验一数字图像的采集和Photoshop软件的操作 (4)1.1实验目的 (4)1.2实验任务及要求 (4)1.3实验内容、步骤和结果 (4)1.4 结果分析 (7)实验二图像的傅里叶变换 (8)2.1实验目的 (8)2.2实验任务及要求 (8)2.3实验内容、步骤和结果 (8)2.4 结果分析 (11)实验三图像的灰度变换和直方图变换 (12)3.1实验目的 (12)3.2实验任务及要求 (12)3.3实验内容、步骤和结果 (12)3.4 结果分析 (16)实验四图像的平滑处理 (17)4.1实验目的 (17)4.2实验任务及要求 (17)4.3实验内容、步骤和结果 (17)4.4 结果分析 (20)实验五 (21)5.1实验目的 (21)5.2实验任务及要求 (21)5.3实验内容、步骤和结果 (21)5.4 结果分析 (24)实验六 (26)6.1实验目的 (26)6.2实验任务及要求 (26)6.3实验内容、步骤和结果 (26)6.4 结果分析 (28)实验一数字图像的采集和Photoshop软件的操作1.1实验目的1、熟悉并掌握MATLAB,PHOTOSHOP等工具的使用;2、实现图像的读取、显示、代数运算和简单的变换。
1.2实验任务及要求1、根据实验内容在MATLAB中编写相应地代码,使结果符合题目要求;2、在PHOTOSHOP中实现与MATLAB中相同对图像的处理,进行对比;3、完成实验报告。
1.3实验内容、步骤和结果1、实验内容:a)读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口上分成三个子窗口来分别显示RGB图像、灰度图像和二值图像,注上文字标题;b)对两幅不同图像执行加、减、乘、除操作,在同一个窗口内分成五个子窗口来分别显示,注上文字标题;c)对一幅图像进行灰度变化,实现图像变亮,变暗和负片效果,在同一个窗口内分成四个子窗口来分别显示,注上文字标题;d)学会常用数字图像处理软件Photoshop的功能操作练习。
数字图像处理实验报告
数字图像处理实验报告目录1.数字图像处理简介2.实验目的3.实验内容4.实验结果及代码展示5.算法综述6.M atlab优势7.总结8.存在问题一、数字图像处理简介图像处理,是对图像进行分析、加工、和处理,使其满足视觉、心理以及其他要求的技术。
图像处理是信号处理在图像域上的一个应用。
目前大多数的图像是以数字形式存储,因而图像处理很多情况下指数字图像处理。
此外,基于光学理论的处理方法依然占有重要的地位。
图像处理是信号处理的子类,另外与计算机科学、人工智能等领域也有密切的关系。
传统的一维信号处理的方法和概念很多仍然可以直接应用在图像处理上,比如降噪、量化等。
然而,图像属于二维信号,和一维信号相比,它有自己特殊的一面,处理的方式和角度也有所不同。
二、实验目的巩固所学知识,提高所学能力三、实验内容利用matlab的GUI程序设计一个简单的图像处理程序,并含有如下基本功能:1. 读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题2. 对给定图像进行旋转3.对给定的图像添加噪声(椒盐噪声、高斯噪声)四、实验结果及代码展示1.软件设计界面2.各模块功能展示以及程序代码(1)读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题效果展示:代码:a = imread('C:\Documents and Settings\Administrator\桌面\数字图像\舞美.JPG');i = rgb2gray(a);I = im2bw(a,0.5);subplot(3,1,1);imshow(a);title('源图像')subplot(3,1,2);imshow(i);title('灰度图像')subplot(3,1,3);imshow(I);title('二值图像')(2)图像旋转原图效果展示:代码:clc;clear all;close all;Img=imread('D:\My Documents\My Pictures\5.JPG'); Img=double(Img);[h w]=size(Img);alpha=pi/4;wnew=w*cos(alpha)+h*sin(alpha);hnew=w*sin(alpha)+h*cos(alpha);wnew=ceil(wnew);hnew=ceil(hnew); u0=w*sin(alpha);T=[cos(alpha),sin(alpha);-sin(alpha),cos(alpha)]; Imgnew2=zeros(hnew,wnew);Imgnew1=zeros(hnew,wnew); for u=1:hnewfor v=1:wnewtem=T*([u;v]-[u0;0]);x=tem(1);y=tem(2);if x>=1&&x<=h&&y>=1&&y<=wx_low=floor(x);x_up=ceil(x);y_low=floor(y);y_up=ceil(y);if (x-x_low)<=(x_up-x)x=x_low;elsex=x_up;endif (y-y_low)<=(y_up-y)y=y_low;elsey=y_up;endp1=Img(x_low,y_low);p2=Img(x_up,y_low);p3=Img(x_low,y_low);p4=Img(x_up,y_up);s=x-x_low;t=y-y_low;Imgnew1(u,v)=Img(x,y);Imgnew2(u,v)=(1-s)*(1-t)*p1+(1-s)*t*p3+(1-t)*s*p2+s*t*p4;endendendfigure;imshow(Imgnew2,[]);B=imrotate(Img,alpha/pi*180);figure;imshow(B,[]);(3)对给定的图像添加噪声(斑点噪声、高斯噪声)效果展示:代码:I= imread('D:\My Documents\My Pictures\5.JPG');figure,subplot(211);imshow(I);title('原图');J1=imnoise(I,'gaussian',0,0.02);subplot(223);imshow(J);title('添加高斯噪声');J=imnoise(I,'speckle',0.04);subplot(224);imshow(J);title('添加斑点噪声');五、算法综述灰度图像:一幅完整的图像,是由红色、绿色、蓝色三个通道组成的。
数字图像处理实验报告
数字图像处理实验报告引言数字图像处理是一门研究如何对图像进行数字化处理的学科,它的应用广泛,涵盖了图像的获取、增强、压缩、分割等多个方面。
本次实验旨在探索数字图像处理的基本原理和常用技术,并通过实践操作加深对数字图像处理的理解。
实验目的1.学习掌握数字图像处理的基本原理;2.熟悉常用的数字图像处理工具和方法;3.实践应用数字图像处理技术解决实际问题。
实验环境在本次实验中,我们使用了以下环境和工具:- 操作系统:Windows 10 - 编程语言:Python - 图像处理库:OpenCV实验步骤步骤一:图像获取与显示首先,我们需要获取一张待处理的图像,并对其进行显示。
在Python中,我们可以使用OpenCV库来实现图像的读取和显示。
以下是示例代码:import cv2# 读取图像image = cv2.imread('image.jpg')# 显示图像cv2.imshow('Image', image)cv2.waitKey(0)cv2.destroyAllWindows()步骤二:图像增强图像增强是数字图像处理中常用的技术之一,旨在改善图像的质量和可视化效果。
常见的图像增强技术包括灰度转换、直方图均衡化、滤波器等。
以下是示例代码:import cv2# 读取图像image = cv2.imread('image.jpg')# 灰度转换gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GR AY)# 直方图均衡化equalized_image = cv2.equalizeHist(gray_image)# 高斯滤波器blurred_image = cv2.GaussianBlur(equalized_image, (5, 5), 0)# 边缘增强enhanced_image = cv2.Canny(blurred_image, 100, 20 0)# 显示图像cv2.imshow('Enhanced Image', enhanced_image)cv2.waitKey(0)cv2.destroyAllWindows()步骤三:图像压缩图像压缩是数字图像处理中的重要话题,旨在减少图像的存储空间和传输带宽。
数字图像处理实验报告.doc
数字图像处理实验报告数字图像处理实验报告1一.实验内容:主要是图像的几何变换的编程实现,具体包括图像的读取、改写,图像平移,图像的镜像,图像的转置,比例缩放,旋转变换等.具体要求如下:1. 编程实现图像平移,要求平移后的图像大小不变;2. 编程实现图像的镜像;3. 编程实现图像的转置;4. 编程实现图像的比例缩放,要求分别用双线性插值和最近邻插值两种方法来实现,并比较两种方法的缩放效果;5. 编程实现以任意角度对图像进行旋转变换,要求分别用双线性插值和最近邻插值两种方法来实现,并比较两种方法的旋转效果.二.实验目的和意义:本实验的目的是使学生熟悉并掌握图像处理编程环境,掌握图像平移、镜像、转置和旋转等几何变换的方法,并能通过程序设计实现图像文件的读、写操作,及图像平移、镜像、转置和旋转等几何变换的程序实现.三.实验原理与主要框架3.1实验所用编程环境Visual C++(简称VC)是微软公司提供的基于C/C++的应用程序集成开发工具.VC拥有丰富的功能和大量的扩展库,使用它能有效的创建高性能的Windows应用程序和Wet应用程序.VC除了提供高效的C/C++编译器外,还提供了大量的可重用类和组件,包括著名的微软基础类库(MFC)和活动模板类库(ATL),因此它是软件开发人员不可多得的开发工具.VC丰富的功能和大量的扩展库,类的重用特性以及它对函数库、DLL库的支持能使程序更好的模块化,并且通过向导程序大大简化了库资源的使用和应用程序的开发,正由于VC具有明显的优势,因而我选择了它来作为数字图像几何变换的开发工具.在本程序的开发过程中,VC的核心知识、消息映射机制、对话框控件编程等都得到了生动的体现和灵活的应用.3.2实验处理的对象:256色的BMP(BIT MAP格式图像BMP(BIT MAP位图的文件结构:具体组成图:BITMAPFILEHEADER位图文件头(只用于BMP文件)bfType="BM" bfSize bfReserved1bfReserved2bfOffBitsbiSize biWidthbiHeight biPla nesbiBitCou ntbiCompressi onbiSizeimagebiXPelsPerMeterbiY PelsPerMeterbiClrUsedbiCirimporta nt单色DIB有2个表项16色DIB有16个表项或更少256色DIB有256个表项或更少真彩色DIB没有调色板每个表项长度为4字节(32位)像素按照每行每列的顺序排列每一行的字节数必须是4的整数倍BITMAPINFOHEAD位图信息头Palette 调色板DIBPixels DIB 图像数据1. BMP文件组成BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成.2. BMP文件头BMP文件头数据结构含有BMP文件的类型(必须为BMP)文件大小(以字节为单位)、位图文件保留字(必须为0)和位图起始位置(以相对于位图文件头的偏移量表示)等信息.3. 位图信息头BMP位图信息头数据用于说明位图的尺寸(宽度,高度等都是以像素为单位,大小以字节为单位,水平和垂直分辨率以每米像素数为单位),目标设备的级别,每个像素所需的位数,位图压缩类型(必须是0)等信息.4. 颜色表颜色表用于说明位图中的颜色,它有若干个表项,每一个表项是一个RGBQUAD类型的结构,定义一种颜色.具体包含蓝色、红色、绿色的亮度(值范围为0-255)位图信息头和颜色表组成位图信息5. 位图数据位图数据记录了位图的每一个像素值,记录顺序是在扫描行内是从左到右,扫描行之间是从下到上.Windows规定一个扫描行所占的字节数必须是4的倍数(即以long为单位),不足的以0填充.3.3 BMP(BIT MAP )位图的显示:①一般显示方法:1. 申请内存空间用于存放位图文件2. 位图文件读入所申请内存空间中3. 在函数中用创建显示用位图,用函数创建兼容DC用函数选择显示删除位图但以上方法的缺点是:1)显示速度慢;2)内存占用大;3)位图在缩小显示时图形失真大,(可通过安装字体平滑软件来解决);4)在低颜色位数的设备上(如256显示模式)显示高颜色位数的图形(如真彩色)图形失真严重.②BMP位图缩放显示:用视频函数来显示位图,内存占用少,速度快,而且还可以对图形进行淡化(Dithering )处理.淡化处理是一种图形算法,可以用来在一个支持比图像所用颜色要少的设备上显示彩色图像.BMP位图显示方法如下:1. 打开视频函数,一般放在在构造函数中2. 申请内存空间用于存放位图文件3. 位图文件读入所申请内存空间中4. 在函数中显示位图5. 关闭视频函数,一般放在在析构函数中以上方法的优点是:1)显示速度快;2)内存占用少;3)缩放显示时图形失真小,4)在低颜色位数的设备上显示高颜色位数的图形图形时失真小;5)通过直接处理位图数据,可以制作简单动画3.4程序中用到的访问函数Win dows支持一些重要的DIB访问函数,但是这些函数都还没有被封装到MFC中,这些函数主要有:1. SetDIBitsToDevice 函数:该函数可以直接在显示器或打印机上显示DIB.在显示时不进行缩放处理.2. StretchDIBits 函数:该函数可以缩放显示DIB于显示器和打印机上.3. GetDIBits 函数:还函数利用申请到的内存,由GDI位图来构造DIB.通过该函数,可以对DIB的格式进行控制,可以指定每个像素颜色的位数,而且可以指定是否进行压缩.4. CreateDIBitmap函数:利用该函数可以从DIB出发来创建GDI 位图.5. CreateDIBSection 函数:该函数能创建一种特殊的DIB,称为DIB项,然后返回一个GDI位图句柄.6. LoadImage函数:该函数可以直接从磁盘文件中读入一个位图,并返回一个DIB句柄.7. DrawDibDraw 函数:Windows提供了窗口视频(VFW)组件,Visual C++支持该组件.VFW中的DrawDibDraw函数是一个可以替代StretchDIBits 的函数.它的最主要的优点是可以使用抖动颜色,并且提高显示DIB的速度,缺点是必须将VFW弋码连接到进程中.3.5图像的几何变换图像的几何变换,通常包括图像的平移、图像的镜像变换、图像的转置、图像的缩放和图像的旋转等.数字图像处理实验报告2一、实验的目的和意义实验目的:本实验内容旨在让学生通过用VC等高级语言编写数字图像处理的一些基本算法程序,来巩固和掌握图像处理技术的基本技能,提高实际动手能力,并通过实际编程了解图像处理软件的实现的基本原理。
数字图像处理 实验报告(完整版).doc
数字图像处理实验一 MATLAB数字图像处理初步一、显示图像1.利用imread( )函数读取一幅图像,假设其名为lily.tif,存入一个数组中;2.利用whos 命令提取该读入图像flower.tif的基本信息;3.利用imshow()函数来显示这幅图像;实验结果如下图:源代码:>>I=imread('lily.tif')>> whos I>> imshow(I)二、压缩图像4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息;5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg文件,设为lily.jpg;语法:imwrite(原图像,新图像,‘quality’,q), q取0-100。
6.同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp图像,设为flily.bmp。
7.用imread()读入图像Sunset.jpg和Winter.jpg;8.用imfinfo()获取图像Sunset.jpg和Winter.jpg的大小;9.用figure,imshow()分别将Sunset.jpg和Winter.jpg显示出来,观察两幅图像的质量。
其中9的实验结果如下图:源代码:4~6(接上面两个) >>I=imread('lily.tif')>> imfinfo 'lily.tif';>> imwrite(I,'lily.jpg','quality',20);>> imwrite(I,'lily.bmp');7~9 >>I=imread('Sunset.jpg');>>J=imread('Winter.jpg')>>imfinfo 'Sunset.jpg'>> imfinfo 'Winter.jpg'>>figure(1),imshow('Sunset.jpg')>>figure(2),imshow('Winter.jpg')三、二值化图像10.用im2bw将一幅灰度图像转化为二值图像,并且用imshow显示出来观察图像的特征。
数字图像处理实验报告
数字图像处理实验报告一、引言数字图像处理是一门涉及图像获取、图像处理和图像分析的重要学科,广泛应用于计算机科学、电子工程、通信技术等领域。
本报告旨在介绍并总结我所进行的数字图像处理实验,讨论实验的目的、方法、结果和分析。
二、实验目的通过本次实验,旨在掌握和理解数字图像处理的基本原理和常见技术,包括灰度变换、空间域滤波、频域滤波等,以及层次分割、边缘检测和形态学处理等高级应用技术。
三、实验方法1. 寻找合适的图像在实验中,我选用了一张自然风景图像作为处理对象。
这张图像包含丰富的纹理和颜色信息,适合用于多种图像处理方法的验证和比较。
2. 灰度变换灰度变换是数字图像处理中常见的基础操作,可以通过对图像的像素灰度值进行线性或非线性变换,来调整图像的对比度、亮度等特征。
在实验中,我利用线性灰度变换方法将原始彩色图像转换为灰度图像,并进行对比度的调整,观察处理结果的变化。
3. 空间域滤波空间域滤波是一种基于像素邻域的图像处理方法,常用于图像去噪、边缘增强等应用。
我使用了平滑滤波和锐化滤波两种方法,并针对不同的滤波算子和参数进行了实验和比较,评估其对图像细节和边缘保留的影响。
4. 频域滤波频域滤波是一种基于图像的频谱特征的图像处理方法,广泛应用于图像增强、去噪和特征提取等方面。
我利用傅里叶变换将图像从空间域转换到频域,采用理想低通滤波器和巴特沃斯低通滤波器进行图像的模糊处理,并进行了实验对比和分析。
5. 高级应用技术在实验中,我还研究了数字图像处理中的一些高级应用技术,包括层次分割、边缘检测和形态学处理。
通过应用不同的算法和参数,我实现了图像区域分割、提取图像边缘和形态学形状变换等效果,评估处理结果的准确性和稳定性。
四、实验结果与分析通过对以上实验方法的实施,我获得了一系列处理后的图像,并进行了结果的比较和分析。
在灰度变换实验中,我发现线性变换对图像的对比度有较大影响,但对图像的细节变化不敏感;在空间域滤波实验中,平滑滤波可以有效降噪,但会导致图像细节损失,而锐化滤波可以增强图像的边缘效果,但也容易引入噪声;在频域滤波实验中,理想低通滤波对图像的模糊效果明显,而巴特沃斯低通滤波器可以在一定程度上保留图像的高频细节信息;在高级应用技术实验中,边缘检测和形态学处理对提取图像边缘和形状变换非常有效,但参数的选择会对结果产生较大影响。
江南大学数字图像处理技术实验1报告
实验报告课程名称:数字图像处理技术实验名称——实验一数字图像基本操作及图像变换实验日期:2012-2-27班级:数媒0902姓名:沈玉婷学号0305090206仪器编号:一、实验目的:1.了解使用扫描仪、数码相机、数码摄像级机、电脑摄像头等数字化设备以及计算机获取数字图像的方法;2.体会像素概念3.掌握图像文件的各种存储格式,并能实现图像文件的读取与显示4.掌握图像基本操作5. 掌握图像变换技术二、实验要求1. 利用程序实现打开附件中的“lena.bmp”文件或是自己的bmp文件,读取该文件的信息并写到“new.bmp”中。
2. 利用程序实现“lena.bmp”图像的傅里叶变换和反变换。
3. 利用程序实现“lena.bmp”图像的离散余弦变换和反变换。
4. 把实现上面要求的程序发到jsj_chen@邮箱中。
三、实验内容离散余弦变换(DCT)if(m_pImgDataOut!=NULL){delete []m_pImgDataOut;m_pImgDataOut=NULL;}//计算图像每行的字节数intlineByte=(m_imgWidth*m_nBitCount/8+3)/4*4;if(m_nBitCount!=8){AfxMessageBox("只能处理8位灰度图像!");return ;}//分配内存,以保存新图像m_nBitCountOut=m_nBitCount;intlineByteOut=(m_imgWidth*m_nBitCountOut/8+3)/4*4 ;if (!m_pImgDataOut){//为处理后的图像分配内存空间m_pImgDataOut=new unsigned char[lineByteOut*m_imgHeight];}int pixelByte=m_nBitCountOut/8;for(i=0; i<m_imgHeight; i++){for(j=0; j<m_imgWidth*pixelByte; j++)*(m_pImgDataOut+i*lineByteOut+j)= *(m_pImgData+i*lineByteOut+j);}// 赋初值w = 1;h = 1;wp = 0;hp = 0;// 计算进行离散余弦变换的宽度和高度(2的整数次方)while(w * 2 <= m_imgWidth){w *= 2;wp++;}while(h * 2 <= m_imgHeight){h *= 2;hp++;}double *f = new double[w * h];pDctBuff = new double[w * h];double *F = pDctBuff;for(i = 0; i < h; i++) // 行{for(j = 0; j < w; j++) // 列{// 指向DIB第i行,第j个象素的指针pSrc = (unsigned char*)m_pImgData + lineByte * (m_imgHeight - 1 - i) + j;// 给时域赋值f[j + i * w] = *(pSrc);}}for(i = 0; i < h; i++){// 对y方向进行离散余弦变换DCT(&f[w * i], &F[w * i], wp);}// 保存计算结果for(i = 0; i < h; i++){for(j = 0; j < w; j++){f[j * h + i] = F[j + w * i];}}for(j = 0; j < w; j++){// 对x方向进行离散余弦变换DCT(&f[j * h], &F[j * h], hp);}for(i = 0; i < h; i++) // 行{for(j = 0; j < w; j++) // 列{//指向新DIB第i行第j列的像素的指针pDst = m_pImgDataOut + lineByte * (m_imgHeight -1 - i) + j;dTemp = fabs(F[j*h+i]); // 计算频谱// 判断是否超过255if (dTemp > 255){dTemp = 255;}// 复制新DIB位图的像素值*pDst=(BYTE)(dTemp);}}m_imgWidthOut=m_imgWidth;m_imgHeightOut=m_imgHeight;delete[] f;离散余弦反变换(IDCT)LONG count; // 离散余弦反变换点数int i; // 循环变量double dTemp, d0;count = 1<<r; // 计算离散余弦变换点数ComplexNumber *array = new ComplexNumber[count*2];memset(array, 0, sizeof(ComplexNumber) * count * 2); // 赋初值为0// 将频域变换后点写入数组arrayfor(i=0;i<count;i++){array[i].real = (float)(F[i] * cos(i*PI/(count*2)));array[i].imag = (float)(F[i] * sin(i*PI/(count*2)));}IFFT1D(array, count * 2);// 调用快速傅立叶反变换// 调整系数dTemp = sqrt(2.0/count);d0 = (sqrt(1.0/count) - dTemp) * F[0];for(i = 0; i < count; i++){f[i] = d0 + array[i].real * dTemp * 2 * count;}delete[] array;四、运行情况傅里叶变换与傅里叶反变换离散余弦变换与反变换五、实验体会(包括对于本次实验的小结,实验过程中碰到的问题等)通过本次实验,在本次实验中,我感受各种不同的灰度变换方法对最终图像效果的影响。
数字图像处理实验报告(图像灰度变换处理)
数字图像处理实验报告班级:姓名:学号:数字图像处理实验报告一.实验名称:图像灰度变换二.实验目的:1 学会使用Matlab;2 学会用Matlab软件对图像灰度进行变换,感受各种不同的灰度变换方法对最终图像效果的影响。
三.实验原理:Matlab中经常使用的一些图像处理函数:读取图像:img=imread('filename'); //支持TIFF,JPEG,GIF,BMP,PNG,XWD等文件格式。
显示图像:imshow(img,G); //G表示显示该图像的灰度级数,如省略则默认为256。
保存图片:imwrite(img,'filename'); //不支持GIF格式,其他与imread相同。
亮度变换:imadjust(img,[low_in,high_in],[low_out,high_out]); //将low_in至high_in之间的值映射到low_out至high_out之间,low_in 以下及high_in以上归零。
绘制直方图:imhist(img);直方图均衡化:histeq(img,newlevel); //newlevel表示输出图像指定的灰度级数。
像平滑与锐化(空间滤波):w=fspecial('type',parameters);imfilter(img,w); //这两个函数结合将变得十分强大,可以实现photoshop里的任意滤镜。
图像复原:deconvlucy(img,PSF); //可用于图像降噪、去模糊等处理。
四.实验步骤:1.获取实验用图像:Fig3.10(b).jpg. 使用imread函数将图像读入Matlab。
2.产生灰度变换函数T1,使得:0.3r r < 0.35s = 0.105+2.6333(r–0.35) 0.35 ≤ r ≤ 0.65 1+0.3(r–1) r > 0.65用T1对原图像Fig3.10(b).jpg进行处理,打印处理后的新图像。
数字图像处理实验报告
数字图像处理实验报告重庆邮电⼤学《数字图像处理》课程上机实验学院⽣物信息学院专业⽣物医学⼯程班级 0611302姓名李霞学号 2013211957实验⼀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基本数据类型的数值数组本⾝⼗分适于表达图像,矩阵的元素和图像的像素之间有着⼗分⾃然的对应关系。
根据图像数据矩阵解释⽅法的不同,MA TLAB把其处理为4类:亮度图像(Intensity images)⼆值图像(Binary images)索引图像(Indexed images)RGB图像(RGB images)(1) 亮度图像⼀幅亮度图像是⼀个数据矩阵,其归⼀化的取值表⽰亮度。
若亮度图像的像素都是uint8类或uint16类,则它们的整数值范围分别是[0,255]和[0,65536]。
若图像是double类,则像素取值就是浮点数。
数字图像处理实验报告
数字图像处理实验报告数字图像处理实验报告实验⼀数字图像基本操作及灰度调整⼀、实验⽬的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. 灰度变换灰度变换是图像增强的⼀种重要⼿段,它常⽤于改变图象的灰度范围及分布,是图象数字化及图象显⽰的重要⼯具。
DSP数字图像处理实验课设
华东交通大学理工学院课程设计报告书所属课程名称DSP原理及应用题目数字图像处理系统设计分院电信分院专业班级 12通信2班学生姓名余志强指导教师李杰目录第一章课程设计内容及要求第二章程序设计原理2.1数字图象处理基本原理2.2数字图像处理常用方法2.3图象灰度处理的基本原理2.4图象的反色原理和实现2.5灰度图象二值化原理及意义第三章程序设计步骤第四章总结第一章课程设计内容及要求一、设计内容1了解数字图象处理的基本原理2 学习灰度图象反色处理技术3 学习灰度图象二值化处理技术第二章程序设计原理2、1数字图像处理的基本原理数字图像处理是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。
图像处理最早出现于 20 世纪 50 年代,当时的电子计算机已经发展到一定水平,人们开始利用计算机来处理图形和图像信息。
数字图像处理作为一门学科大约形成于 20 世纪 60 年代初期。
早期的图像处理的目的是改善图像的质量,它以人为对象,以改善人的视觉效果为目的。
图像处理中,输入的是质量低的图像,输出的是改善质量后的图像,常用的图像处理方法有图像增强、复原、编码、压缩等。
2、2 数字图像处理常用方法:1 )图像变换:由于图像阵列很大,直接在空间域中进行处理,涉及计算量很大。
因此,往往采用各种图像变换的方法,如傅立叶变换、沃尔什变换、离散余弦变换等间接处理技术,将空间域的处理转换为变换域处理,不仅可减少计算量,而且可获得更有效的处理(如傅立叶变换可在频域中进行数字滤波处理)。
目前新兴研究的小波变换在时域和频域中都具有良好的局部化特性,它在图像处理中也有着广泛而有效的应用。
2 )图像编码压缩:图像编码压缩技术可减少描述图像的数据量(即比特数),以便节省图像传输、处理时间和减少所占用的存储器容量。
压缩可以在不失真的前提下获得,也可以在允许的失真条件下进行。
编码是压缩技术中最重要的方法,它在图像处理技术中是发展最早且比较成熟的技术。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字图像处理课程设计报告姓名:x x学号:xxxxxxx班级: xxxxxxxxxxxxxxx设计题目:红细胞数目检测教师:xxxxxx老师提交日期: xx月xx日一、设计内容:主题:《红细胞数目检测》详细说明:读入红细胞图片,通过中值滤波,开运算,闭运算,以及贴标签等方法获得细胞个数。
二、现实意义:细胞数目检测在现实生活中的意义主要体现在医学上的作用,可通过细胞数目的检测来查看并估计病人或动物的血液中细胞数,如估测血液中红细胞、白细胞、血小板、淋巴细胞等细胞的数目,同时也可检测癌细胞的数目来查看医疗效果,根据这一系列的指标来对病人或动物进行治疗,是具有极其重要的现实作用的。
三、涉及知识内容:1、中值滤波2、开运算3、闭运算4、二值化5、贴标签四、实例分析及截图效果:(1)代码显示:1、程序中定义图像变量说明(1)Image--------------------------------------------------------------原图变量;(2)Image_BW-------------------------------------------------------值化图象; (3)Image_BW_medfilt-------------------------中值滤波后的二值化图像; (4)Optimized_Image_BW---通过“初次二值化图像”与“中值滤波后的二值化图像”进行“或”运算优化图像效果;(5)Reverse_Image_BW--------------------------优化后二值化图象取反;(6)Filled_Image_BW----------------------已填充背景色的二进制图像;(7)Open_Image_BW--------------------------------------开运算后的图像;2、实现代码:Image = imread('红细胞5.jpg');figure,imshow(Image);title('【原图】');Theshold = graythresh(Image);Image_BW = im2bw(Image,Theshold);figure,imshow(Image_BW);title('【初次二值化图像】');Image_BW_medfilt= medfilt2(Image_BW,[13 13]);figure,imshow(Image_BW_medfilt);title('【中值滤波后的二值化图像】');Optimized_Image_BW = Image_BW_medfilt|Image_BW;figure,imshow(Optimized_Image_BW);title('【进行“或”运算优化图像效果】');Reverse_Image_BW = ~Optimized_Image_BW;figure,imshow(Reverse_Image_BW);title('【优化后二值化图象取反】');Filled_Image_BW = bwfill(Reverse_Image_BW,'holes'); figure, imshow(Filled_Image_BW);title('【已填充背景色的二进制图像】');SE = strel('disk',4);Open_Image_BW = imopen(Filled_Image_BW,SE); figure, imshow(Open_Image_BW);title(' 【开运算后的图像】');[Label Number]=bwlabel(Open_Image_BW,8)Array = bwlabel(Open_Image_BW,8);Sum = [];for i=1:Number[r,c] = find(Array==i);rc = [r c];Num = length(rc);Sum([i])=Num;EndSumN = 0;for i=1:length(Sum)if(Sum([i])) > 1500N = N+1;endendNumber = Number+N3、运行效果截图:第一步:读取原图,并显示Image = imread('红细胞5.jpg');figure,imshow(Image);title(' 【原图】');第二步:进行二值化Theshold = graythresh(Image);%取得图象的全局域值Image_BW = im2bw(Image,Theshold);%二值化图象figure,imshow(Image_BW);title(' 【初次二值化图像】');第三步:进行二值化图像Image_BW_medfilt= medfilt2(Image_BW,[13 13]);figure,imshow(Image_BW_medfilt);title(' 【中值滤波后的二值化图像】');第四步:通过“初次二值化图像”与“中值滤波后的二值化图像”进行“或”运算优化图像效果Optimized_Image_BW = Image_BW_medfilt|Image_BW;figure,imshow(Optimized_Image_BW);title(' 【进行“或”运算优化图像效果】');第五步:优化后二值化图象取反,保证:'1'为'白色',0'为'黑色' Reverse_Image_BW = ~Optimized_Image_BW;figure,imshow(Reverse_Image_BW);title(' 【优化后二值化图象取反】');第六步:填充二进制图像的背景色,去掉细胞内的黑色空隙Filled_Image_BW = bwfill(Reverse_Image_BW,'holes');figure, imshow(Filled_Image_BW);title(' 【已填充背景色的二进制图像】');第七步:对图像进行开运算,去掉细胞与细胞之间相粘连的部分SE = strel('disk',4);Open_Image_BW = imopen(Filled_Image_BW,SE);figure, imshow(Open_Image_BW);title(' 【开运算后的图像】');第八步:开始计算细胞数[Label Number]=bwlabel(Open_Image_BW,8)%初步取得细胞个数Array = bwlabel(Open_Image_BW,8);%取得贴标签处理后的图像Sum = [];%依次统计贴标签后数组for i=1:Number[r,c] = find(Array==i);%获取相同标签号的位置,将位置信息存入[r,c]rc = [r c];Num = length(rc);%取得vc数组的元素的个数Sum([i])=Num;%将元素个数存入Sum数组endSumN = 0;-----假如Sum数组中的元素大于了1500,表示有两个细胞相连,像素点较多,即分为两个细胞数---for i=1:length(Sum)if(Sum([i])) > 1500N = N+1;endendNumber = Number+N %----统计最终细胞数第九步:最终检测结果:Number =92Sum =Columns 1 through 103011 313 1501 329 2238 795 758 1438 1087 1472Columns 11 through 201476 1465 2902 1128 1655 44 6261 1193 1306 215Columns 21 through 301112 1074 1177 930 493 1438 1121 1678 1210 1330Columns 31 through 401370 1369 1153 1284 1061 589 2146 1486 1335 1049Columns 41 through 501275 1101 1127 661 1530 1304 2861 90 1772 854Columns 51 through 601554 1582 1287 1362 81 2090 608 1736 853 1040Columns 61 through 702779 1500 246 77 1096 14819680 1404 783 724Columns 71 through 801439 626 1097 1823 1511 1223 1494 2494 1519 1329Columns 81 through 90733 1119 1205 1147 1295 1398 344 1634 324 1081Columns 91 through 92529 239Number =114四、算法分析(1)中值滤波利用中值滤波可以对图像进行平滑处理。
其算法简单,时间复杂度低,但其对点、线和尖顶多的图像不宜采用中值滤波。
很容易自适应化。
(2)开运算先腐蚀后膨胀的过程称为开运算。
用来消除小物体、在纤细点处分离物体、平滑较大物体的边界的同时并不明显改变其面积。
(3)闭运算先膨胀后腐蚀的过程称为闭运算。
用来填充物体内细小空洞、连接邻近物体、平滑其边界的同时并不明显改变其面积。
《数字图像处理》课程设计五、心得体会这份课程设计花了我近一周的时间来完成,最开始自以为完成了,结果让同学一看,才知道我做错了,我只是实现了一个基本的算法来处理了图像,而未能通过算法来实现某种功能,于是又马上重做了,呵呵...挺曲折的经历,下面来说说我在做这个设计的体会吧:通过这次的课程设计,我首次通过编写代码来完成对图像的处理,这是一份难得的经验。
在刚开始运用MATLAB时,由于以前只是在数字信号处理课程时使用,发现在数字图像处理中对其操作可以说是非常的不熟练,特别是图片路径总是不对,但是,当我把以前做过的MATLAB实验的记录重新看过之后,开始慢慢的对MATLAB的操作熟练起来,并且在实践中找到了学习的乐趣。
虽然在这短时间里需要不断查资料,然后对着电脑,把一个一个郁闷得问题解决,那过程真的是苦不堪言。