图像处理课程报告

合集下载

图像处理实验报告

图像处理实验报告

图像处理实验报告图像处理实验报告一、引言图像处理是计算机科学与工程领域的一个重要研究方向,它涉及到对数字图像进行获取、处理、分析和显示等一系列操作。

本实验旨在通过使用图像处理技术,对一幅给定的数字图像进行处理和分析,以探索图像处理的原理和应用。

二、实验目的本实验有以下几个目的:1. 理解图像处理的基本概念和原理;2. 掌握图像处理的常用技术和方法;3. 熟悉图像处理软件的使用。

三、实验步骤1. 图像获取在本实验中,我们选择了一张风景图作为实验对象。

该图像是通过数码相机拍摄得到的,保存在计算机中的文件格式为JPEG。

我们使用图像处理软件将该图像导入到程序中,以便进行后续的处理和分析。

2. 图像预处理在进行图像处理之前,我们需要对图像进行预处理。

预处理的目的是去除图像中的噪声、平滑图像的边缘等。

我们使用了均值滤波和中值滤波两种常用的图像平滑方法。

通过对比两种方法的效果,我们可以选择合适的方法来进行图像预处理。

3. 图像增强图像增强是指通过一系列的操作,使得图像在视觉上更加鲜明、清晰、易于观察。

在本实验中,我们使用了直方图均衡化和灰度拉伸两种图像增强方法。

直方图均衡化通过对图像的像素值进行变换,使得图像的直方图更加均匀,从而增强图像的对比度。

灰度拉伸则是通过对图像的像素值进行线性变换,将图像的灰度范围拉伸到更广的范围内,从而增强图像的细节。

4. 图像分割图像分割是将图像分成若干个互不重叠的区域,每个区域具有一定的意义和特征。

在本实验中,我们使用了阈值分割和边缘检测两种图像分割方法。

阈值分割是指通过设置一个合适的阈值,将图像中的像素分为两个类别。

边缘检测则是通过检测图像中的边缘信息,将图像分割为不同的区域。

5. 图像特征提取图像特征提取是指从图像中提取出具有一定意义和特征的信息。

在本实验中,我们选择了纹理特征和颜色特征两种常用的图像特征提取方法。

纹理特征提取通过对图像的纹理进行分析,提取出图像的纹理特征。

计算机图像处理学习报告

计算机图像处理学习报告

主要学习内容1.数字图像处理( Digital Image Processing )又称为计算机图像处理, 它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程, 以提高图像的实用性, 从而达到人们所要求的预期结果。

例如: 对照片反差进行变换;对被噪声污染的工业电视图像去除噪声;从卫星图片中提取目标物特征参数等等。

与人类对视觉机理着迷的历史相比, 数字图像处理还是一门相对年轻的学科。

但在其短短的历史中, 它却以程度不同的成功被应用于几乎所有与成像有关的领域。

由于其表现方式(用图像显示)所固有的魅力, 它几乎吸引了从科学家到平民百姓太多的注意。

几个新的技术发展趋势将进一步刺激该领域的成长: 包括由低价位微处理器支持的并行处理技术;用于图像数字化的低成本的电荷耦合器件(CCD);用于大容量、低成本存储阵列的新存储技术;以及低成本、高分辨的彩色显示系统。

另一个推动力来自于稳定涌现出的新的应用。

在商业、工业、医学应用中, 数字成像技术的使用持续增长。

尽管军费在削减, 在遥感成像中却更多地使用了数字图像处理技术。

低成本的硬件加上正在兴起的几个非常重要的应用, 我们可以预料到数字图像处理在将来会发挥更重要的作用。

2.图像增强技术图像增强是指按特定的需要突出一幅图像中的某些信息, 同时, 削弱或去除某些不需要的信息的处理方法。

其主要目的是处理后的图像对某些特定的应用比原来的图像更加有效。

图像增强技术主要包含直方图修改处理、图像平滑化处理、图像尖锐化处理和彩色处理技术等。

空间域平滑技术为了抑制噪声改善图像质量所进行的处理称为图像平滑或去噪。

它可以在空间域或频率域中进行。

此处介绍空间域的几种平滑方法。

(1)局部平滑法局部平滑发又称邻域平均法或移动平均法。

它是利用像素邻域内的各像素的灰度平均值代替该像素原来的灰度值, 实现图像的平滑。

邻域平均法是将当前像素邻域内各像素的灰度平均值作为其输出值的去噪方法。

其作用相当于用这样的模板同图像卷积。

图片处理实训报告总结

图片处理实训报告总结

图片处理实训报告总结
本次图片处理实训主要围绕图像采集、预处理、特征提取和图像分割等方面展开。

通过本次实训,我对图像处理的基本原理和常用技术有了更深入的了解,并且掌握了相关的工具和方法。

在图像采集方面,我们学习了如何使用相机或者手机进行图像的拍摄,以及如何处理不同光照和角度下的图像。

我们使用了不同的拍摄方式和参数设置,以获得更好的图像质量。

同时,我们还学习了如何使用图像处理软件对已有的图像进行采集和处理,包括调整亮度、对比度和色彩平衡等。

在图像预处理方面,我们学习了如何去除噪声和不必要的细节,以提高图像的质量。

我们使用了滤波器对图像进行平滑和锐化处理,同时还学习了如何使用图像算法对图像进行增强处理。

通过预处理,我们能够更好地凸显出图像的目标信息和特征。

在特征提取方面,我们学习了常用的特征提取方法,包括边缘检测、角点检测和纹理特征提取等。

我们使用了不同的算法和工具对图像进行特征提取,并利用提取到的特征进行目标检测和识别。

通过特征提取,我们能够更好地分析和理解图像中的信息内容。

最后,在图像分割方面,我们学习了如何将图像分割成不同的区域或者对象。

我们使用了不同的图像分割算法,包括阈值分割、边缘检测和聚类等方法。

通过图像分割,我们能够更好地提取出图像中的目标区域,为后续的图像处理和分析提供基础。

综上所述,本次图片处理实训使我对图像处理的原理和技术有了更深入的了解,并且通过实际操作和实验,掌握了相关的工具和方法。

这对我的专业发展和实际工作都具有重要的意义,我将更加努力地学习和实践,不断提升自己在图像处理领域的能力。

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

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

数字图像处理课程设计报告姓名:学号:班级: .net设计题目:图像处理教师:赵哲老师提交日期: 12月29日一、设计内容:主题:《图像处理》详细说明:对图像进行处理(简单滤镜,模糊,锐化,高斯模糊等),对图像进行处理(上下对称,左右对称,单双色显示,亮暗程度调整等),对图像进行特效处理(反色,实色混合,色彩平衡,浮雕效果,素描效果,雾化效果等),二、涉及知识内容:1、二值化2、各种滤波3、算法等三、设计流程图四、实例分析及截图效果:运行效果截图:第一步:读取原图,并显示close all;clear;clc;% 清楚工作窗口clc 清空变量clear 关闭打开的窗口close allI=imread('1.jpg');% 插入图片1.jpg 赋给Iimshow(I);% 输出图II1=rgb2gray(I);%图片变灰度图figure%新建窗口subplot(321);% 3行2列第一幅图imhist(I1);%输出图片title('原图直方图');%图片名称一,图像处理模糊H=fspecial('motion',40);%% 滤波算子模糊程度40 motion运动q=imfilter(I,H,'replicate');%imfilter实现线性空间滤波函数,I图经过H滤波处理,replicate反复复制q1=rgb2gray(q);imhist(q1);title('模糊图直方图');二,图像处理锐化H=fspecial('unsharp');%锐化滤波算子,unsharp不清晰的qq=imfilter(I,H,'replicate');qq1=rgb2gray(qq);imhist(qq1);title('锐化图直方图');三,图像处理浮雕(来源网络)%浮雕图l=imread('1.jpg');f0=rgb2gray(l);%变灰度图f1=imnoise(f0,'speckle',0.01);%高斯噪声加入密度为0.01的高斯乘性噪声 imnoise噪声污染图像函数 speckle斑点f1=im2double(f1);%把图像数据类型转换为双精度浮点类型h3=1/9.*[1 1 1;1 1 1;1 1 1];%采用h3对图像f2进行卷积滤波f4=conv2(f1,h3,'same');%进行sobel滤波h2=fspecial('sobel');g3=filter2(h2,f1,'same');%卷积和多项式相乘 same相同的k=mat2gray(g3);% 实现图像矩阵的归一化操作四,图像处理素描(来源网络)f=imread('1.jpg');[VG,A,PPG] = colorgrad(f);ppg = im2uint8(PPG);ppgf = 255 - ppg;[M,N] = size(ppgf);T=200;ppgf1 = zeros(M,N);for ii = 1:Mfor jj = 1:Nif ppgf(ii,jj)<Tppgf1(ii,jj)=0;elseppgf1(ii,jj)=235/(255-T)*(ppgf(ii,jj)-T);endendendppgf1 = uint8(ppgf1);H=fspecial('unsharp');Motionblur=imfilter(ppgf1,H,'replicate');figure;imshow(ppgf1);调用function [VG, A, PPG] = colorgrad(f, T)if (ndims(f)~=3) || (size(f,3)~=3)error('Input image must be RGB');endsh = fspecial('sobel');sv = sh';Rx = imfilter(double(f(:,:,1)), sh, 'replicate');Ry = imfilter(double(f(:,:,1)), sv, 'replicate');Gx = imfilter(double(f(:,:,2)), sh, 'replicate');Gy = imfilter(double(f(:,:,2)), sv, 'replicate');Bx = imfilter(double(f(:,:,3)), sh, 'replicate');By = imfilter(double(f(:,:,3)), sv, 'replicate');gxx = Rx.^2 + Gx.^2 + Bx.^2;gyy = Ry.^2 + Gy.^2 + By.^2;gxy = Rx.*Ry + Gx.*Gy + Bx.*By;A = 0.5*(atan(2*gxy./(gxx-gyy+eps)));G1 = 0.5*((gxx+gyy) + (gxx-gyy).*cos(2*A) + 2*gxy.*sin(2*A));A = A + pi/2;G2 = 0.5*((gxx+gyy) + (gxx-gyy).*cos(2*A) + 2*gxy.*sin(2*A)); G1 = G1.^0.5;G2 = G2.^0.5;VG = mat2gray(max(G1, G2));RG = sqrt(Rx.^2 + Ry.^2);GG = sqrt(Gx.^2 + Gy.^2);BG = sqrt(Bx.^2 + By.^2);PPG = mat2gray(RG + GG + BG);if nargin ==2VG = (VG>T).*VG;PPG = (PPG>T).*PPG;endf1=rgb2gray(f);imhist(f1);title('素描图直方图');五,图像处理实色混合(来源网络)%实色混合I(I<=127)=0; %对像素进行处理,若值小于等于127,置0 I(I>127)=255; %对像素进行处理,若值大于127,置255 imshow(I);title('像素图');I1=rgb2gray(f);imhist(I1);title('像素图直方图');六,图像处理反色图f=imread('1.jpg');q=255-q;imshow(q);title('反色图');imhist(q1);title('反色图直方图');七,图像处理上下对称A=imread('1.jpg');B=A;[a,b,c]=size(A);a1=floor(a/2); b1=floor(b/2); c1=floor(c/2);B(1:a1,1:b,1:c)=A(a:-1:a-a1+1,1:b,1:c);figureimshow(B)title('上下对称');A=rgb2gray(A);figureimhist(A)title('上下对称直方图');八,图像处理类左右对称C=imread('1.jpg');A=C;C(1:a,1:b1,1:c)=A(1:a,b:-1:b+1-b1,1:c);figureimshow(C)title('左右对称');A=rgb2gray(A);figureimhist(A);title('左右对称直方图');九,图像处理单双色显示a=imread('1.jpg');a1=a(:,:,1);a2=a(:,:,2); a3=a(:,:,3);aa=rgb2gray(a);a4=cat(3,a1,aa,aa); a5=cat(3,a1,a2,aa);figuresubplot(121);imshow(a4);title('单色显示');subplot(122);imshow(a5);title('双色显示');a4=rgb2gray(a4);a5=rgb2gray(a5);figuresubplot(121);imhist(a4);title('单色显示直方图');subplot(122);imhist(a5);title('双色显示直方图');十,图像处理亮暗度调整a=imread('1.jpg');a1=0.8*a;figuresubplot(121);imshow(a1);title('暗图');subplot(122);imshow(a2);title('亮图')q3=rgb2gray(a1);q4=rgb2gray(a2);figuresubplot(121);mhist(q3);title('暗图直方图') subplot(122);imhist(q4);title('亮图直方图')十一,图像处理雾化处理q=imread('1.jpg');m=size(q,1);n=size(q,2);r=q(:,:,1);g=q(:,:,2);b=q(:,:,3);for i=2:m-10for j=2:n-10k=rand(1)*10;%产生一个随机数作为半径di=i+round(mod(k,33));%得到随机横坐标dj=j+round(mod(k,33));%得到随机纵坐标r(i,j)=r(di,dj);%将原像素点用随机像素点代替 g(i,j)=g(di,dj);b(i,j)=b(di,dj);endenda(:,:,1)=r;a(:,:,2)=g;a(:,:,3)=b;imshow(a)title('雾化处理图');q=rgb2gray(a);figureimhist(q);title('雾化处理图直方图');十二,图像处理高斯滤波I = imread('1.jpg');G =fspecial('gaussian', [5 5], 2);% fspecial生成一个高斯滤波器Ig =imfilter(I,G,'same');%imfilter使用该滤波器处理图片imshow(Ig);title('高斯滤波');I1=rgb2gray(Ig);imhist(I1);title('高斯滤波直方图');十三,图像处理色彩平衡(来自网络)im=imread('1.jpg');im2=im;%存储元图像im1=rgb2ycbcr(im);%将im RGB图像转换为YCbCr空间。

ps课程设计报告

ps课程设计报告

ps课程设计报告一、课程介绍:本课程旨在通过深入浅出的教学方法,使学员熟练掌握Photoshop的基本操作技能,进而能够独立完成图像处理、设计和创作等工作。

课程围绕Photoshop的核心功能,如图像编辑、色彩调整、图层操作、路径绘制和滤镜应用等,展开全面而系统的教学。

预期成果是,学员将建立起扎实的Photoshop技能基础,并能够运用这些技能解决实际问题,提升视觉表达能力。

课程背景是随着数字媒体和网络技术的迅猛发展,图像处理和设计技能在个人和职业生活中越来越重要。

掌握Photoshop技能不仅能满足工作和学习的需要,也能丰富个人的创意生活和艺术修养。

因此,本课程作为数字艺术教育的组成部分,旨在满足社会和学员个人发展的需求,提升学员的综合素质。

二、学习者分析:目标受众为16岁以上,具有一定计算机操作基础的学员。

他们可能对摄影、绘画、设计或数字艺术有浓厚的兴趣。

先备知识方面,学员应对计算机的基本操作有了解,有一定的审美观念和创意思维能力。

三、学习目标:1.认知目标:学员应了解Photoshop的基本界面布局、工具栏功能以及各种图像处理的基本概念。

2.技能目标:学员应能熟练使用Photoshop进行图像打开、保存、编辑、裁剪、调整色彩、应用图层效果等基本操作。

3.情感目标:通过课程学习,学员应培养对图像创作的兴趣,提升审美能力,并养成积极探索和终身学习的意识。

四、课程内容:1.模块/单元划分:课程内容分为基础操作、图像编辑、图层应用、路径与矢量图形、色彩调整、滤镜与效果六大模块。

2.内容描述:每个模块包含若干与Photoshop功能紧密相关的子主题,如基础操作模块包含界面熟悉、工具使用、图像调整等子主题。

3.核心概念:每个模块都强调对核心概念的理解,如图层的概念、路径的编辑技巧、色彩理论的应用等。

通过实际操作加深对理论的认识和理解。

五、教学策略:为了达到课程的学习目标,本课程将采用多种教学方法相结合的策略。

关于图形图像处理实训报告总结【九篇】

关于图形图像处理实训报告总结【九篇】

关于图形图像处理实训报告总结【九篇】实训报告总结:图形图像处理实训图形图像处理实训是计算机科学与技术专业的基础课程之一。

通过本次实训课程,我深入了解了图形图像处理的基本概念、方法和技术,并通过实际操作来提升了自己的实践能力。

下面是对本次实训的九篇报告总结:1. 实验一:图像读取与显示本次实验主要是学习如何读取和显示图像,以及使用Matplotlib库进行图像展示。

通过实验,我掌握了图像读取和显示的基本方法,并学会了基本的图像处理操作。

2. 实验二:图像的灰度变换实验二主要是学习图像的灰度变换,包括线性变换和非线性变换。

我学会了如何使用不同的灰度变换函数来调整图像的亮度和对比度,进一步提升图像的质量。

3. 实验三:图像的空间域滤波本次实验主要是学习图像的空间域滤波技术,包括均值滤波、中值滤波和高斯滤波等。

通过实验,我掌握了不同滤波方法的原理和实现方式,并学会了如何选择合适的滤波方法来降噪和模糊图像。

4. 实验四:图像的频域滤波实验四主要是学习图像的频域滤波技术,包括傅里叶变换和频域滤波等。

通过实验,我了解了傅里叶变换的原理和应用,并学会了如何使用频域滤波来实现图像的锐化和平滑。

5. 实验五:图像的形态学处理本次实验主要是学习图像的形态学处理技术,包括腐蚀、膨胀、开运算和闭运算等。

通过实验,我学会了如何使用形态学操作来改变图像的形状和结构,进一步改善图像的质量。

6. 实验六:图像的边缘检测实验六主要是学习图像的边缘检测技术,包括Sobel算子、Laplacian算子和Canny算子等。

通过实验,我了解了不同边缘检测方法的原理和应用,并学会了如何使用边缘检测来提取图像的轮廓和特征。

7. 实验七:图像的分割与聚类本次实验主要是学习图像的分割与聚类技术,包括阈值分割、区域生长和K均值聚类等。

通过实验,我掌握了不同分割与聚类方法的原理和应用,并学会了如何使用分割与聚类来识别和分析图像中的目标和区域。

8. 实验八:图像的特征提取与描述子实验八主要是学习图像的特征提取和描述子技术,包括尺度不变特征变换(SIFT)和方向梯度直方图(HOG)等。

数字图像处理课设报告

数字图像处理课设报告

数字图像处理课程设计报告细胞识别目录第一部分页脚内容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、实验目的:对血液细胞切片图片进行各种处理,最终得出细胞的数目、面积等信息。

数字图像处理实验报告

数字图像处理实验报告

数字图像处理实验报告数字图像处理实验报告1一. 实验内容:主要是图像的几何变换的编程实现,具体包括图像的读取、改写,图像平移,图像的镜像,图像的转置,比例缩放,旋转变换等.具体要求如下:1.编程实现图像平移,要求平移后的图像大小不变;2.编程实现图像的镜像;3.编程实现图像的转置;4.编程实现图像的比例缩放,要求分别用双线性插值和最近邻插值两种方法来实现,并比较两种方法的缩放效果;5.编程实现以任意角度对图像进行旋转变换,要求分别用双线性插值和最近邻插值两种方法来实现,并比较两种方法的旋转效果.二.实验目的和意义:本实验的目的是使学生熟悉并掌握图像处理编程环境,掌握图像平移、镜像、转置和旋转等几何变换的方法,并能通过程序设计实现图像文件的读、写操作,及图像平移、镜像、转置和旋转等几何变换的程序实现.三.实验原理与主要框架:3.1 实验所用编程环境:Visual C++(简称VC)是微软公司提供的基于C/C++的应用程序集成开发工具.VC拥有丰富的功能和大量的扩展库,使用它能有效的创建高性能的Windows应用程序和Web应用程序.VC除了提供高效的C/C++编译器外,还提供了大量的可重用类和组件,包括著名的微软基础类库(MFC)和活动模板类库(ATL),因此它是软件开发人员不可多得的开发工具.VC丰富的功能和大量的扩展库,类的重用特性以及它对函数库、DLL库的支持能使程序更好的模块化,并且通过向导程序大大简化了库资源的使用和应用程序的开发,正由于VC具有明显的优势,因而我选择了它来作为数字图像几何变换的开发工具.在本程序的开发过程中,VC的核心知识、消息映射机制、对话框控件编程等都得到了生动的体现和灵活的应用.3.2 实验处理的对象:256色的BMP(BIT MAP )格式图像BMP(BIT MAP )位图的文件结构:具体组成图: BITMAPFILEHEADER位图文件头(只用于BMP文件) bfType=BM bfSize bfReserved1bfReserved2bfOffBitsbiSizebiWidthbiHeightbiPlanesbiBitCountbiCompressionbiSizeImagebi_PelsPerMeterbiYPelsPerMeterbiClrUsedbiClrImportant单色DIB有2个表项16色DIB有16个表项或更少256色DIB有256个表项或更少真彩色DIB没有调色板每个表项长度为4字节(32位)像素按照每行每列的顺序排列每一行的字节数必须是4的整数倍BITMAPINFOHEADER 位图信息头 Palette 调色板 DIB Pi_els 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 程序中用到的访问函数Windows支持一些重要的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 图像的几何变换图像的几何变换,通常包括图像的平移、图像的镜像变换、图像的转置、图像的缩放和图像的旋转等.一、实验的目的和意义实验目的:本实验内容旨在让学生通过用VC等高级语言编写数字图像处理的一些基本算法程序,来巩固和掌握图像处理技术的基本技能,提高实际动手能力,并通过实际编程了解图像处理软件的实现的基本原理。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《数字图像处理》课程论文题目:瓶子灌装流水线是否灌装满瓶体的检测姓名学院专业班级学号指导教师日期2015年6月10日瓶子灌装流水线是否灌装满瓶体的检测摘要:使用数字图像处理方法分析图像中液面高度来检测瓶中的液体体积是否符合要求。

通过对瓶子中装满液体的区域进行提取,以此区域的大小作为判断的依据。

首先对采集的实际图像进行RGB三种颜色分量的提取,将其中的两种分量作差,除去背景,接下来将作差后的图像采用大津法计算阈值并二值化,再通过腐蚀、膨胀等运算去除躁声点。

最后标记连通域、计算各连通域的面积,判断出未装满的瓶子,将其标注出来,同时统计瓶子总数及未装满的个数。

所有处理过程通过matlab编程实现。

关键词:数字图像处理;液体体积检测0 引言随着消费水平的提高,相关法律法规的完善,在食品(饮料、调料)和医药等行业中,产品的质量变得越来越重要。

而产品的重量符合要求正是产品质量的基本要求之一。

但现在,这些行业的生产规模日益扩大,生产现代化水平日益提高。

采用传统手段对大规模现代化生产线上的产品灌装后的液体体积进行逐一检测,已经是很困难的了。

在固定的同一种瓶中,其液体的液位变化直接反应了所装液体体积的变化,所以对液位的检测实际上就是对灌装液体体积的检测。

本文利用数字图像处理技术对灌装后瓶内液位进行检测的算法,能满足对液体体积进行快速在线检测的要求。

在当前市面上液面的检测是基于传感器等芯片实现的,结构复杂。

而基于数字图像处理的算法只能处理一些简单的理想的图片,事实上流水线由于空气浮沉、机械振动等的影响根本无法采集到躁点少,杂波低的理想图片。

本算法利用作差法实现了去噪,又运用了图像增强法实现了对目标图像的提取,克服了传统算法的缺点。

1 检测原理在瓶子灌装流水线上要实现对液体是否灌装满瓶体的检测,可以有下面三种方法:(1)以液面的高度作为判断依据。

将刚好装满时的液位高度作为标准,若液面高度低于此标准,则认为未装满。

(2)以瓶口处未装满的体积作为判断依据。

由于同一流水线上的瓶子的尺寸和规格都是一样的,所以当瓶口处未装满的体积大于标准值时则认为未装满。

而实际通过摄像头采集的图像是二维的,无法计算体积,于是有面积代替。

(3)以瓶子装满的体积作为判断依据。

由于同一流水线上的瓶子的尺寸和规格都是一样的,所以当瓶子装满的体积小于标准值时则认为未装满。

而实际通过摄像头采集的图像是二维的,无法计算体积,于是用面积代替。

考虑到算法的简便性,本文采用了第三种方法。

图像处理的流程如下:图(1)图像处理流程图2 去背景由于我们最终要提取的是瓶子装满区域的面积,所以我们感兴趣的部分就是瓶子装满液体的区域,其他部分则为背景。

去除背景的干扰才能便于后续的面积提取。

例如模拟瓶子灌装流水线上的初始图像如图所示:图(2)初始图像其中瓶子本身为无色透明的,所装液体为橙黄色,瓶后的挡板为白色(由于采集光线所致,挡板略显粉红)。

若直接进行灰度变换(如图3),所得图像难以将装满区域提取。

去背景二 值 化 去 噪 生 计算装满区图像的面积 比较判断是否装满并标记 统计总数并计算不合格率图(3)直接进行灰度变换后图像应用matlab编写程序为:clearclose allI=imread('E:\图像处理\6.png');figure,imshow(I)I=rgb2gray(I);figure,imshow(I)因此不能直接进行灰度变换,只能考虑先对彩色图像进行处理。

首先将彩色图像的RGB三个彩色分量提取出来。

应用matlab编写程序为:fR=I(:,:,1); %获取图像的红色分量fG=I(:,:,2); %获取图像的绿色分量fB=I(:,:,3); %获取图像的蓝色分量figure,imshow(fR) %分别显示图像figure,imshow(fG)figure,imshow(fB)图(4)红色分量图像图(5)绿色分量图像图(6)蓝色分量图像将RGB三个色彩分量的图形进行分析可发现,在每一种分量的图像中瓶子装满区域与其他部分的差别不大不易提取,但将三种分量的图像进行对比可以发现瓶子已灌装液体的区域与未装满的在分量图像中各有差异,因此可以采用图像代数运算中的图像减法来实现图像装满区域的提取,即图像的去背景。

图像减法也称为差分方法,是一种常用于检测图像变化及运动物体的图像处理方法。

图像减法可以作为许多图像处理工作的准备步骤。

例如,可以使用图像减法来检测一系列相同场景图像的差异。

图像减法与阈值化处理的综合使用往往是建立机器视觉系统最有效的方法之一。

对原始图像分析可得到如下特征:(1)瓶后的挡板为白色,RGB三种分量的灰度值都接近255,因此任意两种分量的图像做减法运算均可以去掉挡板。

(2)瓶中液体为橙黄色,瓶子本身为无色,因此:红色分量减去蓝色分量可提取出瓶中装有液体的区域:图(7)红色分量减去蓝色分量后的图像图(8)红色分量减去绿色分量后的图像显然,对液体区域的提取红色分量减去绿色分量没有没有红色分量减去蓝色分量的清晰。

图(9)绿色分量减去红色分量后的图像图(10)绿色分量减去蓝色分量后的图像图(11)蓝色分量减去红色分量后的图像图(12)蓝色分量减去绿色分量后的图像经过对以上处理方法所得结果进行对比,决定给采用红色分量减去蓝色分量来提取瓶子中装满液体区域的方法。

此方法可有效提取液体区域,且噪点少,便于后续的二值化等处理。

综上可得,用不同颜色分量做作差去背景的方法十分灵活,可根据瓶子的颜色及瓶中液体的颜色来选择不同的作差方式。

尤其适用于瓶子颜色与所装液体颜色不同情况下。

以上处理应用matlab编写的程序为:fR_B=fR-fB; %红色分量减去蓝色分量figure,imshow(fR_B)fR_G=fR-fG; %红色分量减去绿色分量figure,imshow(fR_G)fG_R=fG-fR; %绿色分量减去红色分量figure,imshow(fG_R)fG_B=fG-fB; %绿色分量减去蓝色分量figure,imshow(fG_B)fB_R=fB-fR; %蓝色分量减去红色分量figure,imshow(fB_R)fB_G=fB-fG; %蓝色分量减去绿色分量figure,imshow(fB_G)3 二值化图像的二值化处理就是将图像上的点的灰度置为0或255,也就是将整个图像呈现出明显的黑白效果。

即将256个亮度等级的灰度图像通过适当的阈值选取而获得仍然可以反映图像整体和局部特征的二值化图像。

利于再对图像做进一步处理时,图像的几何性质只与像素值为0或255的点的位置有关,不在涉及像素的多级值,使处理变得简单,而且数据量减小,能凸显出感兴趣的目标的轮廓。

图像二值化的具体实现方法就是将所有灰度大于或等于阈值的像素判定为属于特定物体,其灰度值为255表示,而其他的像素点被排除在物体区域以外,灰度值为0,表示背景或者例外的区域。

因此图像二值化的选择十分关键,根据其对像素的处理方式,主要分为三类:(1)全局阈值法:是指整个图像采用单一阈值(全局阈值)T进行图像二值化。

一般有图像的直方图或灰度的空间分布确定一个全局阈值T,将图像的每个像素的灰度值与T进行比较。

若大于T,则取为前景色;否则取为背景色;典型的全局阈值法有Ostu法、最大熵法等。

(2)局部阈值法:由当前像素灰度值与该像素周围点局部灰度特征来确定像素的阈值。

通过定义考察点的邻域,并由邻域计算模板实现考察点灰度与邻域点的比较。

典型的局部阈值法有Bernsen法、Nilblack法等。

(3)动态阈值法:当光照不均匀、或者背景灰度变化较大等情况时,必须根据图像的坐标位置关系自动确定不同阈值,实施动态的阈值确定。

该法的阈值选择不仅取决与该像素及周围像素的灰度值。

而且还与该像素的坐标位置有关。

邻域均值法是较为常见的一种动态阈值确定技术。

对去背景后的图像(图(7))分析得到,图像整体光照均匀,适合用全局阈值法,这里我们采用Ostu法(最大类间方差法,又称大津法)来选取阈值。

应用MATLAB进行图像处理时使用函数level=graythresh(I)来计算全局阈值(level).处理后图像如图(13)。

图(13)采用Ostu法选取阈值并将进行二值化的图像二值化后的图像基本可以,已能将瓶中装满液体的区域提取。

应用matlab编写程序为:bw1=im2bw(fG_B,level); %二值化figure,imshow(bw1)四滤波通常,由于噪声的影响,图像在阈值化后所得到边界往往是很不平滑的,物体区域具有一些噪声,背景区域上散布着一些小的噪声物体。

连续的开和闭运算可以有效地改善这种情况。

有时需要经过多次腐蚀之后在加上相同次数的膨胀,才可以产生比较好的效果。

开运算:先腐蚀后膨胀的过程称为开运算。

用来消除小物体、在纤细点处分离物体、平滑较大物体的边界的同时并不明显改变其面积。

闭运算:先膨胀后腐蚀的过程称为闭运算。

用来填充物体内细小空间、连接邻近物体、平滑其边界的同时并不明显改变其面积。

腐蚀:腐蚀是一种消除边界点,使边界向内部收缩的过程。

可以用来消除小且无意义的物体。

膨胀:膨胀是将与物体接触的所有背景点合并到该物体中,使边界向外部扩张的过程。

可以用来填充物体中的空洞。

经过二值化后的图像虽然能基本提取所需区域,但扔存在一些纤细处分离的物体类噪声点。

我们要将这些噪声点去掉,对于每一个瓶子的位置只保留一个连通的区域来计算面积,所以采用开运算的方法来消除噪声。

由于噪声点不是很多,可进行一次开运算便得到了很好的效果(如图(14))。

如果小物体类噪声点较大可采用多次腐蚀后在经相同次数的膨胀来完成。

图(14)经开运算后的图像应用matlab编写程序为:%SE1=strel('arbitrary',eye(5)); %设置腐蚀结构元素%bw2=imerode(bw1,SE1); %腐蚀%figure,imshow(bw2)bw3=bwmorph(bw1,'open'); %开运算figure,imshow(bw3)%bw3=bwmorph(bw2,'open'); %开运算%figure,imshow(bw3));五装满区域面积的计算对瓶中装满液体区域面积的计算实际就是对目标所占像素数的计算。

经过开运算后,每个装满的区域都成了一个连通的区域,为计算每一个区域的面积首先要各个区域进行标记,可以利用matlab中的bwlabel函数来实现;然后计算被标记的各区域的大小,可以利用matlab中的regionprops来实现;Bwlabel的作用是在二值图像中标记连通区域,用法如下:L=bwlabel(BW,n)返回一个和BW大小相同的L矩阵,包含标记了BW中每个连通区域的类别标签,这些标签的值为1、2、num(连通区域的个数)。

相关文档
最新文档