数字图像处理课设基于MATLAB的复杂图像目标提取
- 格式:docx
- 大小:240.80 KB
- 文档页数:16
matlab目标图像提取目标图像提取(Object Image Extraction)是一种图像处理技术,旨在从给定图像中提取出感兴趣的目标物体。
在Matlab中,我们可以利用各种图像处理函数和算法来实现目标图像提取。
首先,我们需要加载原始图像。
在Matlab中,可以使用imread函数来加载图像。
例如,假设我们要提取一张名为"image.jpg"的图像,可以使用以下代码加载该图像:```matlabimg = imread('image.jpg');```接下来,我们可以对图像进行预处理,以减少噪声和提高图像质量。
常见的预处理方法包括灰度化、平滑滤波和图像增强等。
例如,可以使用rgb2gray函数将彩色图像转换为灰度图像:```matlabgrayImg = rgb2gray(img);```然后,我们可以选择适当的图像分割方法来将图像分割为目标物体和背景。
常见的图像分割方法包括阈值分割、边缘检测和区域生长等。
例如,可以使用imbinarize函数对灰度图像进行二值化处理:```matlabbwImg = imbinarize(grayImg);```接下来,我们可以使用形态学操作来提取目标物体的形状和结构特征。
形态学操作主要包括膨胀、腐蚀、开运算和闭运算等。
例如,可以使用imopen函数对二值图像进行开运算:```matlabopenedImg = imopen(bwImg, se);```其中,se是指定的结构元素,用于定义形态学操作的大小和形状。
最后,我们可以根据需要对提取的目标图像进行后处理。
例如,可以使用imfill函数填充目标物体内部的空洞:```matlabfilledImg = imfill(openedImg, 'holes');```此外,我们还可以使用imclearborder函数消除与图像边界相连的目标物体,以及使用bwareafilt函数对目标物体进行面积筛选等。
数字图像处理课程设计--基于Matlab的数字图像处理数字图像处理课程设计基于Matlab的数字图像处理——图像的运算院系信息技术学院专业班级电气6班学号 201107111282姓名何英娜指导教师章瑞平课程设计时间 2012年11月目录一、摘要 (3)二、图像代数运算1、1图像的加法运算 (4)1、2图像的减法运算 (4)1、3图像的除法运算 (4)1、4绝对差值运算 (7)1、 5 图像的求补运算 (7)3三、图像的几何运算2、1 图像插值 (7)2、2图像的旋转 (8)2、3图像的缩放 (9)2、4图像的投影变换 (10)2、4图像的剪切 (11)四、课程设计总结与体会 (13)五、参考文献 (14)摘要图像运算涵盖程序设计、图像点运算、代数运算、几何运算等多种运算;设计目的和任务:1、熟悉图像点运算、代数运算、几何运算的基本定义和常见方法;2、掌握在MTLAB中对图像进行点运算、代数运算、几何运算的方法3、掌握在MATLAB中进行插值的方法4、运用MATLAB语言进行图像的插值缩放和插值旋转5、学会运用图像的投影变换和图像的剪切46、进一步熟悉了解MATLAB语言的应用,将数字图像处理更好的应用于实际7、通过各类算法加强图像各种属性、一、图像的几何运算何运算图像代数运算是指对两幅或两幅以上输入图像对应的像素逐个进行和差积商运算以产生增强效果的图像。
图像运算是一种比较简单有效的增强处理手段是图像处理中常用方法。
四种图像处理代数运算的数学表达式如下:C(x,y)=A(x,y)+B(x,y)C(x,y)=A(x,y)-B(x,y)C(x,y)=A(x,y)*B(x,y)C(x,y)=A(x,y)/B(x,y)1图像加法运算一般用于多幅图像求平均效果,以便有效降低具有叠加性的随机噪声,在matlab中imadd用于图像相加,其调用格式为z=imadd(X,Y);程序演示如下:I=imread('rice.png');subplot(2,2,1),imshow(I),title('原图像1'); J=imread('cameraman.tif');subplot(2,2,2),imshow(J),title('原图像52');K=imadd(I,J,'uint16'););subplot(2,2,3),imshow(K,[]),title('相加后图像'2、图像减法运算也称差分运算,是用于检测图像变化及运动物体的方法;用imsubtract函数实现。
河南农业大学《数字图像处理》题目:图像特征提取学院:专业:班级:学号:姓名:指导教师:成绩:时间:年月日至年月日一、目的与要求图像特征提取的目的让计算机具有认识或者识别图像的能力,即图像识别。
特征选择是图像识别中的一个关键问题。
特征选择和提取的基本任务是如何从众多特征中找出最有效的特征。
根据待识别的图像,通过计算产生一组原始特征,称之为特征形成。
原始特征的数量很大,或者说原始样本处于一个高维空间中,通过映射或变换的方法可以将高维空间中的特征描述用低维空间的特征来描述,这个过程就叫特征提取。
特征是一个数字图像中“有趣”的部分,它是许多计算机图像分析算法的起点。
因此一个算法是否成功往往由它使用和定义的特征决定。
因此特征提取最重要的一个特性是“可重复性”:同一场景的不同图像所提取的特征应该是相同的。
二、设计的内容能对图像文件(进bmg、 jpg、 tiff、 gif等)进行打开、保存、另存、打印、退出等功能操作;(一)图像预处理功能:数字图像的增强处理功能:空域中的点运算、直方图的均衡化、各种空间域平滑算法(如局部平滑滤波法、中值滤波等)。
(二)图像特征提取区域图的面积、周长的统计;区域单元的个数统计等。
三、总体方案设计(一)图像特征提取的算法我们知道一幅图像可定义为一个二维函数f(x,y),这里x和y是空间坐标,而在任何一对空间坐标(x,y)上的幅值f称为该图像的强度或灰度。
当x,y和幅值f 为有限的离散数值时,称该图像为数字图像。
而图像的特征提取主要有以下几种方法:边界特征法,傅里叶形状描述符法,几何参数法,形状不变矩法等。
而区域的周长及面积的算法如下:(1)面积S:图像中的区域面积S可以用同一标记的区域内像素的个数总和来表示。
按上述表示法区域R 的面积S=41。
区域面积可以通过扫描图像,累加同一标记像素得到,或者是直接在加标记处理时计数得到。
假设区域的边界链码为,每个码段ai 所表示的线段长度为 ,那么该区域边界的周长为式中ne 为链码序列中偶数码个数;n 为链码序列中码的总个数。
数字图像处理matlab课程设计一、课程目标知识目标:1. 理解数字图像处理的基本概念,掌握图像的表示和存储方式;2. 学会使用MATLAB软件进行数字图像处理,掌握相关函数和工具箱的使用方法;3. 掌握图像增强、滤波、边缘检测等基本图像处理技术;4. 了解图像分割、特征提取等高级图像处理技术。
技能目标:1. 能够运用MATLAB进行图像读取、显示和保存操作;2. 能够独立完成图像的增强、滤波等基本处理操作;3. 能够运用边缘检测算法对图像进行处理,提取关键特征;4. 能够根据实际需求选择合适的图像处理技术,解决实际问题。
情感态度价值观目标:1. 培养学生对数字图像处理技术的兴趣,激发其学习热情;2. 培养学生的团队合作意识,使其学会在团队中分享和交流;3. 培养学生严谨的科学态度,使其注重实验数据的真实性;4. 培养学生的创新思维,鼓励其探索新方法,提高解决问题的能力。
本课程旨在通过数字图像处理MATLAB课程设计,使学生在掌握基本理论知识的基础上,运用MATLAB软件进行图像处理实践。
课程注重理论与实践相结合,培养学生具备实际操作能力,并能运用所学知识解决实际问题。
针对学生的年级特点,课程目标既注重知识技能的传授,又关注情感态度价值观的培养,为学生今后的学习和工作奠定基础。
二、教学内容1. 数字图像处理基础- 图像表示与存储(RGB、灰度、二值图像)- 图像类型转换- MATLAB图像处理工具箱介绍2. 图像增强- 直方图均衡化- 伽玛校正- 图像锐化3. 图像滤波- 均值滤波- 中值滤波- 高斯滤波- 双边滤波4. 边缘检测- 索贝尔算子- 拉普拉斯算子- Canny边缘检测5. 图像分割- 阈值分割- 区域生长- 分水岭算法6. 特征提取与描述- 霍夫变换- SIFT算法- ORB算法教学内容根据课程目标进行选择和组织,注重科学性和系统性。
教学大纲明确分为六个部分,分别对应数字图像处理的基础知识、图像增强、滤波、边缘检测、图像分割和特征提取与描述。
数字图像处理课程设计报告姓名:学号:班级: .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空间。
数字图像处理matlab课程设计一、教学目标本课程的教学目标是使学生掌握数字图像处理的基本理论和方法,学会使用MATLAB软件进行图像处理和分析。
通过本课程的学习,学生应达到以下具体目标:1.理解数字图像处理的基本概念、原理和算法。
2.熟悉MATLAB图像处理工具箱的使用。
3.能够运用数字图像处理的基本算法解决实际问题。
4.能够使用MATLAB进行图像处理和分析,撰写相关的程序代码。
情感态度价值观目标:1.培养学生的创新意识和团队协作精神。
2.培养学生对数字图像处理技术的兴趣,提高其综合素质。
二、教学内容根据课程目标,本课程的教学内容主要包括以下几个部分:1.数字图像处理基本概念:图像处理的基本概念、图像数字化、图像表示和图像变换。
2.图像增强和复原:图像增强、图像去噪、图像复原。
3.图像分割和描述:图像分割、图像特征提取和描述。
4.图像形态学:形态学基本运算、形态学滤波、形态学重建。
5.MATLAB图像处理工具箱的使用:MATLAB图像处理工具箱的基本功能、常用图像处理函数。
6.图像处理实例分析:结合实际案例,分析数字图像处理技术的应用。
三、教学方法为了实现课程目标,本课程将采用以下教学方法:1.讲授法:通过讲解图像处理的基本概念、原理和算法,使学生掌握图像处理的基本知识。
2.案例分析法:通过分析实际案例,使学生了解数字图像处理技术在实际中的应用。
3.实验法:通过上机实验,使学生熟练掌握MATLAB图像处理工具箱的使用,提高学生的实际操作能力。
4.讨论法:学生进行课堂讨论,激发学生的思维,培养学生的创新意识和团队协作精神。
四、教学资源为了支持教学内容和教学方法的实施,本课程将采用以下教学资源:1.教材:《数字图像处理(MATLAB版)》。
2.参考书:相关领域的经典教材和论文。
3.多媒体资料:教学PPT、视频教程等。
4.实验设备:计算机、MATLAB软件、图像处理相关硬件设备。
五、教学评估本课程的评估方式包括平时表现、作业、考试等多个方面,以全面、客观、公正地评价学生的学习成果。
《数字视音频技术》课程设计报告题目:基于MATLAB/GUI数字图像处理专业名称:电子信息工程班级:电信072 学号:姓名:2010年 12月20日基于MATLAB/GUI数字图像处理一.设计目标图形用户界面(Graphical User Interface)简称GUI,在Matlab程序开发中起着举足轻重的作用,它有别于传统的VC、JAVA或者Delphi的界面开发方式。
作为一个数学运算能力很强的软件,Matlab的运算结果通常是用图形来表示的,GUI的使用更易于图形表现的多元化,在数字图像处理中更加的方便、直观。
下面设计一个简单的GUI数字图像处理,掌握GUI菜单,控件,回调函数的具体实现方法。
二.设计环境:Windows xpMatlab 7.1三.方案论证界面设计采用菜单模式,通过MATLAB图像处理工具箱提供的强大图像处理、图像设计功能来对图像进行处理。
通过做Matlab GUI界面来对图像进行编辑、缩放、加噪声、噪声滤波、颜色模型转换和图像的翻转。
通过对Matlab函数直接调用和自编函数来实现上述图像处理功能,其中图像进行任意角度翻转还用到了两个不同GUI之间数据传递实现的。
四.实验设计过程1.菜单的创建和设置菜单项的创建、设置可以通过系统函uimenu函数来完成,同时也可以利用GUI的设计工具来创建、设置。
如图1-1图1-1 菜单栏的设置2.控件的设计现在,绝大多数的软件中,图形界面都包含有控件。
控件也是一种是图形对象通过使用各种类型的控件,可以建立起操作简便,功能强大的图形界面软件。
Matlab系统为我们提供了lO种控件对象如:复选框、可编辑文本框等。
实验的整体GUI界面设计如图2-1。
图2-1 GUI界面3.实验运行过程与功能:文件运行界面如图4-1:图4-1 运行界面点击打开,打开一个图片,如图4-2图 4-2 打开一个图片编辑点击编辑,双三次缩小,输入参数,如图4-3图4-3然后,选择旋转,界面如图4-4图4-4图像旋转界面输入一个角度,然后点击确定,就会把图片进行旋转,如45度,运行结果如图4-5图4-5 图像旋转结果图点下面任意一个的原色,然后点ok,就会对背景原色进行变换,比如选择bule,得到的结果图如图4-6图4-6 原色转换结果图图像处理图4-7亮度处理图4-8 Hsv 模型转化 图4-9图像腐蚀图4-10高度滤波五.结束语由以上例子可以看出来,使用Matlab 来编写程序确实简洁、方便。
华北水利水电大学North China University of Water Resources and Electric Power 数字图像处理课设题目基于MATLAB的复杂图像目标提取课程名称数字图像处理学院信息工程学院专业通信工程目录摘要在我们日常生活中,由于工作等各种需要,我们往往会对图像进行各种处理,其中就包括对复杂图像目标提取,当然有很多的处理方法本次主要是在用MATLAB对图像做基本的处理来提取目标图像特征。
本次课设用MATLAB处理时,首先对图片进行基础的处理,包括彩色图像转化为灰色图像的处理、二值处理、直方图的分析、滤波处理以及利用各种算法对图像进行边缘化处理等操作。
然后采用合适的方法对图像目标做最终的提取。
在本次课设中,我采用的是利用MATLAB生成图片的直方图,然后从直方图上得出不同颜色所对应的灰度,再灰度对不同颜色的图像分别进行提取。
但是此方法有一个很大的局限性,就是无法处理相同颜色的目标图像,因此经过对资料的查阅和老师的帮助,我找到了解决方法,对相同颜色的图像进行区域划分,然后再对处于不同区域的目标图像分别进行提取。
关键词:图像目标提取 MATLAB 灰度区域提取一、设计要求自选一幅图像,确定要选择的目标区域,编写合适的程序,然后用MATLAB 或VC+Opencv对目标图形进行提取,要求对图像做基础的处理,包括图像的读取,存储,去噪,边缘检测等触及处理。
二、设计原理和方案在实际图像处理中,一般情况下我们只是注意到图像中那些我们感兴趣的目标,因为只有这部分也就是我们注意到的有用的目标物才能为我们提供高效、有用的信息。
而这些目标一般又都对应着图像中某些特定的、具有独特性质的区域。
为了把这些有用的区域提取出来供我们人类使用,我们对图像的提取做了很多的研究。
本次课设采用的原理主要是用MATLAB处理,首先对图片进行基础的处理,包括彩色图像转化为灰色图像的处理、二值处理、直方图的分析、滤波处理以及利用各种算法对图像进行边缘化处理等操作。
然后采用合适的方法对图像目标做最终的提取。
采用的是利用MATLAB生成图片的直方图,然后从直方图上得出不同颜色所对应的灰度,再灰度对不同颜色的图像分别进行提取。
对相同颜色的图像进行区域划分,然后再对处于不同区域的目标图像分别进行提取。
从而达到课设要求1、图像直方图图像直方图能很直观的反映出图像的特征,灰度,强度等,并且在处理时很容易实现,且具有图像平移、旋转、缩放不变性等众多优点,在很多方面都得到了广泛地应用,特别是灰度图像的阈值分割、基于颜色的图像检索以及图像分类。
直方图图形化显示不同的像素值在不同的强度值上的出现频率,对于灰度图像来说强度,范围为[0~255]之间,对于RGB的彩色图像可以独立显示三种颜色的强度直方图。
强度直方图是用来寻找灰度图像二值化阈值常用的方法。
若一幅灰度图像的直方图显示为两个波峰,则二值化阈值应该是这两个波峰之间的某个灰度值。
同时强度直方图是调整图像对比度的重要依据直方图实现方法:对一幅灰度图像从上到下,从左到右扫描每个像素值,在每个灰度值上计算像素数目,不同的灰度值,并以这些数据为基础完成图像直方图的绘制。
从而得出目标图像的特征。
2、图像灰度把白色与黑色之间按对数关系分为若干等级,称为灰度。
灰度共分为256阶。
并且在应用中我们通常采用的是用灰度表示的图像称作灰度图,因为从灰度图像上我们可以很清晰地看出图像的各种特征。
图像通常是由红色绿色蓝色三个通道组成的。
并且这三种颜色使用以灰度显示的,用不同的灰度色阶来表示各颜色在图像中的比重。
灰度数字图像是每个像素只有一个采样颜色的图像。
这类图像通常显示为从最暗黑色到最亮的白色的灰度,尽管理论上这个采样可以表示任何颜色的不同深浅,甚至可以是不同亮度上的不同颜色。
灰度图像与黑白图像不同,在计算机图像领域中黑白图像只有黑色与白色两种颜色;灰度图像在黑色与白色之间还有许多级的颜色深度。
并且在实验中对灰度图像的处理可以很大程度上提高运算的速率以及效果。
3、低通滤波图像的滤波,即在尽量保留图像细节特征的条件下对目标图像的噪声进行抑制,在图像的处理中占据非常重要的地位,因为它的处理将直接影响到后续图像处理和分析的有效性和可靠性。
而本次试验中采用的是中值滤波法对图像进行处理。
中值滤波自产生便被广泛应用于各种对噪声的处理中。
中值滤波器是基于次序统计完成信号恢复的一种典型的非线性滤波器,其基本原理是把图像或序列中心点位置的值用该域的中值替代,并且具有运算简单、速度快、除噪效果好等优点。
并且在应用中中值滤波于得到了发展和改进,便是现在所称的标准中值滤波,标准中值滤波算法的基本思想是将滤波窗口内的最大值和最小值均视为噪声,用滤波窗口内的中值代替窗口中心像素点的灰度,在一定程度上抑制了噪声。
实际上在一定邻域范围内具有最大或最小灰度值这一特性的,除了噪声点,还包括图像中的边缘点、线性特征点等。
因此很大程度上提高了图像处理和分析的有效性和可靠性。
4、边缘检测综合分析本次实验采取的是Prewitt算子边缘检测,Prewitt算子是一种一阶微分算子的边缘检测,利用像素点上下、左右邻点的灰度差,在边缘处达到极值检测边缘,去掉部分伪边缘,对噪声具有平滑作用。
其原理是在图像空间利用两个方向模板与图像进行邻域卷积来完成的,这两个方向模板一个检测水平边缘,一个检测垂直边缘。
对数字图像f(x,y),Prewitt算子的定义如下:G(i)=|[f(i-1,j-1)+f(i-1,j)+f(i-1,j-1)]-[f(i+1,j-1)+f(i++f(i+1,j)+1)]| G(j)=|[f(i-1,j+1)+f(i,j+1)+f(i+1j+1)]-[f(i-1,j-1)+f(i,j-1)+f(i+,j-1]| 则 P(i,j)=max[G(i),G(j)]或 P(i,j)=G(i)+G(j)三、设计步骤及结果1、图像的读取的存储相关程序:M=imread('G:\');subplot(2,3,1);imshow(M,[]);title('原彩色图');imwrite(M,'G:\');2、彩色图像的灰度化相关程序:M=rgb2gray(M);3、图像的滤波相关程序:H=fspecial('average',5);F{1}=double(filter2(H,M));subplot(2,3,2);imshow(F{1},[]);title('均值低通滤波');4、图像的边缘检测相关程序:M=imread('G:\');K=rgb2gray(M);subplot(2,3,3),imhist(K);M1=[-1,-1,-1;0,0,0;1,1,1];M2=[-1,0,1;-1,0,1;-1,0,1];N1=filter2(M1,K);N2=filter2(M2,K);K1=double(N1);K2=double(N2);M=(abs(K1) +abs(K2));figure,imshow(uint8(M))title('Prewitt算子边缘检测');5、不同颜色目标图像的提取相关程序:123 201 196 218分别为彩色图像的绿色、粉色、黄色以及橙黄的灰度值。
num=[123 201 196 218];[m,n]=size(N);for I1=1:4D=zeros(m,n);D=D+255;for i=1:mfor j=1:nif N(i,j)==num(I1)D(i,j)=N(i,j);endendendsubplot(2,2,I1)imshow(D,[]);end6、相同颜色的目标图像的提取采用对目标区域进行划分,然后依据不同的区域对目标图像进行提取。
图像读取:图像划分区域:图像提取:四、问题解决及体会通过这次课程设计,知道自己在这一课程上存在的不足,另外也从这个课程设计中学到了很多东西,通过对程序的编写以及MATLAB的具体操作,提高了自己编写程序的能力,并且对MATLAB的操作更加熟练,以及一些对图片处理的基本操作,包括彩色图像转化为灰色图像的处理、二值处理、直方图的分析、滤波处理以及利用各种算法对图像进行边缘化处理等操作。
自己的能力和知识面都得到了很大的提高。
但是在整个过程中遇到了一些困难,查阅了资料,也得到了老师和同学的帮助,不过每一次的问题的解决都是一个大的进步,对于参数的选取最让我觉得困难,首先是闭运算的矩阵的选取,还有根据图像对灰度的估计与精确从而利用不同颜色的灰度进行目标图像的提取,还有我之前设想的是根据不同颜色的图像的不同灰度进行目标图像的提取,实验也得到了很好的结果,但是面对同学提出的对于相同颜色的图像该如何进行提取的问题。
我发现了问题所在,但由于时间的限制,所以只能在源程序上进行修改,在老师的帮助下,我试着编写程序将相同的图像进行分区域,编号,然后再对不同区域的目标图像进行提取。
最后成功的解决了问题。
此次的课程设计是一个让自己得到很大提高的一个课程,可以让自己丛中学到很多,在课程设计过程中不免会出现不少问题,如果对这些知识足够了解就能很到找到问题原因,并且轻松解决,所以掌握一定的知识很重要,另外也要多实践,在实践中检验自己,提高自己的动手能力,课程设计使我充分体会到了解决问题得到结果后的那种喜悦。
也从中收获到了很多知识,也为接下来的学习打下了良好的基础。
五、参考文献【1】姚敏,数字图像处理,机械出版社【2】李俊辉,数字图像处理,清华大学出版社【3】贺兴华,周媛媛,王继阳,MATLAB图像处理,人民邮电出版社【4】刘卫国,MATLAB程序设计及应用高等教育出版社附录:不同颜色目标图像的提取总程序:clcclear all;M=imread('G:\');subplot(2,3,1);imshow(M,[]);title('原彩色图');M=rgb2gray(M);N=M;imwrite(M,'G:\');H=fspecial('average',5);F{1}=double(filter2(H,M));subplot(2,3,2);imshow(F{1},[]);title('均值低通滤波');M=imread('G:\');K=rgb2gray(M);subplot(2,3,3),imhist(K);M1=[-1,-1,-1;0,0,0;1,1,1];M2=[-1,0,1;-1,0,1;-1,0,1];N1=filter2(M1,K);N2=filter2(M2,K);K1=double(N1);K2=double(N2);M=(abs(K1) +abs(K2));figure,imshow(uint8(M))title('Prewitt算子边缘检测');figurenum=[123 201 196 218];[m,n]=size(N);for I1=1:4D=zeros(m,n);D=D+255;for i=1:mfor j=1:nif N(i,j)==num(I1)D(i,j)=N(i,j);endendendsubplot(2,2,I1)imshow(D,[]);end相同颜色的目标图像的分区域提取总程序:clcclearclose allM= imread('G:\');M=im2bw(M);figure(1);imshow(M);M=~M;figure(2);imshow(M);[L, num] = bwlabel(M);STATS1=regionprops(L,'Perimeter');ahe=size(STATS1);m1=ahe(1,1);m=zeros(2,m1);for i=1:m1% 计算目标区域中心,用于显示编号的位置[p,q]=find(L==i);temp=[p,q];[x,y]=size(temp);m(1,i)=sum(p)/x;m(2,i)=sum(q)/x;endfor i=1:m1figure(2);text(m(2,i),m(1,i),int2str(i),'color','red') endL(L~=2)=0;figure(3);imshow(~L);。