版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1引言所谓图像分割是指根据灰度、彩色、空间纹理、几何形状等特征把图像划分成若干个互不相交的区域,使得这些特征在同一区域内,表现出一致性或相似性,而在不同区域间表现出明显的不同37简单的讲,就是在一幅图像中,把目标从背景中分离出来,以便于进一步处理。图像分割是图像处理与计算机视觉领域低层次视觉中最为基础和重要的领域之一,它是对图像进行视觉分析和模式识别的基本前提同时它也是一个经典难题,到目前为止既不存在一种通用的图像分割方法,也不存在一种判断是否分割成功的客观标准。阈值法是一种传统的图像分割方法,因其实现简单、计算量小、性能较稳定而成为图像分割中最基本和应用最广泛的分割技术已被应用于很多的领域,
2、例如,在红外技术应用中,红外无损检测中红外热图像的分割,红外成像跟踪系统中目标的分割;在遥感应用中,合成孔径雷达图像中目标的分割等;在医学应用中,血液细胞图像的分割,磁共振图像的分割;在农业工程应用中,水果品质无损检测过程中水果图像与背景的分割。在工业生产中,机器视觉运用于产品质量检测等等。在这些应用中,分割是对图像进一步分析、识别的前提,分割的准确性将直接影响后续任务的有效性,其中阈值的选取是图像阈值分割方法中的关键技术。2阈值分割的基本概念图像阈值化分割是一种最常用,同时也是最简单的图像分割方法,它特别适用于目标和背景占据不同灰度级范围的图像1。它不仅可以极大的压缩数据量,而且也大大简化了
3、分析和处理步骤,因此在很多情况下,是进行图像分析、特征提取与模式识别之前的必要的图像预处理过程。图像阈值化的目的是要按照灰度级,对像素集合进行一个划分,得到的每个子集形成一个与现实景物相对应的区域,各个区域内部具有一致的属性,而相邻区域布局有这种一致属性。这样的划分可以通过从灰度级出发选取一个或多个阈值来实现。阈值分割法是一种基于区域的图像分割技术,其基本原理是:通过设定不同的特征阈值,把图像像素点分为若干类常用的特征包括:直接来自原始图像的灰度或彩色特征;由原始灰度或彩色值变换得到的特征设原始图像为f(x,y),按照一定的准则在f(x,y)中找到特征值T,将图像分割为两个部分,分割后的图像为
4、若取 :b0=0(黑),b1=1(白),即为我们通常所说的图像二值化。 (原始图像) (阈值分割后的二值化图像)一般意义下,阈值运算可以看作是对图像中某点的灰度、该点的某种局部特性以及该点在图像中的位置的一种函数,这种阈值函数可记作 T(x,y,N(x,y),f(x,y)式中,f(x,y)是点(x,y)的灰度值;N(x,y)是点(x,y)的局部邻域特性根据对T的不同约束,可以得到3种不同类型的阈值37,即 点相关的全局阈值TT(f(x,y) (只与点的灰度值有关)区域相关的全局阈值TT(N(x,y),f(x,y) (与点的灰度值和该点的局部邻域特征有关) 局部阈值或动态阈值TT(x,y,N(x
5、,y),f(x,y)(与点的位置、该点的灰度值和该点邻域特征有关)所有这些阈值化方法,根据使用的是图像的局部信息还是整体信息,可以分为上下文无关(non-contextual)方法(也叫做基于点(point-dependent)的方法)和上下文相关(contextual)方法(也叫做基于区域(region-dependent)的方法);根据对全图使用统一阈值还是对不同区域使用不同阈值,可以分为全局阈值方法(global thresholding)和局部阈值方法(local thresholding,也叫做自适应阈值方法adaptive thresholding);另外,还可以分为双阈值方法(b
6、ilever thresholding)和多阈值方法(multithresholding)3. 设计原理说明 这次VC+设计主要是基于迭代阈值图像分割法,它的设计方法如下。初始阈值选取为图像的平均灰度T0,然后用T0将图像的象素点分作两部分,计算两部分各自的平均灰度,小于T0的部分为TA,大于T0的部分为TB计算 ,将T1 作为新的全局阈值代替T0,重复以上过程,如此迭代,直至TK 收敛,即TK1 TK 经试验比较,对于直方图双峰明显,谷底较深的图像,迭代方法可以较快地获得满意结果。 对于背景和物体直方图双峰明显的图像进行迭代阈值分割,把目标从背景中分离出来,以便于进一步处理。此次设计就是利用
7、VC平台建立一个软件程序对图像进行迭代阈值分割。VC界面比比较简洁,主要功能是打开目标背景BMP图像文件,并且在主界面下显示图像。通过对图像的迭代阈值分割操作,然后将已经分割的图像在主界面下显示。4算法流程设计对图像进行阈值分割显示图像打开图像结束开始显示处理后的图像Fig.1算法流程图5实现步骤1) 打开VC+软件,进入主界面,建立一个单文档的应用项目。2) 在主框架添加菜单“图像处理”,并在此菜单下添加如下子菜单“显示原图像”、“图像阈值分割”、“显示图像分割结果”3)把代码输入后编译通过,实现“显示原图像”功能,并以对话框的形式显示4)对图像作“迭代阈值分割”处理5)在主界面下显示“迭代
8、阈值分割”的图像,并以对话框的形式显示。6)保存图像文件6运行结果的截图Fig.2主界面Fig.3 显示原目标背景图像Fig.4 显示迭代阈值分割结果7.部分主要程序代码/图像阈值分割程序#include "stdafx.h"#include "windowsx.h"#include "math.h"#include "YuZhiChuLidib.h"#include "MainFrm.h"/*/ /*函数名称:Diedaifazhi(int *tongji) /*函数类型:void/*参数说明
9、:tonji -直方图灰度值统计 /*功能:对图像进行迭代阀值选取。 /*/ void CYuZhiChuLiDib:Diedaifazhi(int *tongji) / 循环变量LONG i;LONG j;/ 指向DIB象素指针LPBYTE p_data;/ 找到DIB图像象素起始位置p_data = GetData();/ DIB的宽度LONG wide = this->GetDibWidthBytes();/ DIB的高度LONG height = this->GetHeight();/ 迭代阀值int T1, T2;T1 = 127;T2 = 0;/ 临时变量int Tem
10、p0, Temp1, Temp2, Temp3;Temp0 = Temp1 = Temp2 = Temp3 = 0;while (true)/ 计算下一个迭代阀值for (i = 0; i < T1 + 1; i+)Temp0 += tongjii * i;Temp1 += tongjii;for (i = T1 + 1; i < 256; i+)Temp2 += tongjii * i;Temp3 += tongjii;T2 = (Temp0 / Temp1 + Temp2 / Temp3) / 2;/ 看迭代结果是否已收敛if (T1 = T2)break;elseT1 = T
11、2;/ 对各像素进行灰度转换for (j = 0; j < height; j +)for (i = 0; i < wide; i +)/ 读取像素unsigned char temp = *(unsigned char *)p_data + wide * j + i);/ 判断像素灰度值是否超出范围if (temp < T1)temp = 0;elsetemp = 255;/ 回写处理完的像素*(unsigned char *)p_data + wide * j + i) = temp;void CYuZhiChuLiDib:Fenbutongji(int *tongji)
12、/ 循环变量LONG i;LONG j;/变量初始化memset(tongji,0,sizeof(int) * 256);/ 指向DIB象素指针LPBYTE p_data;/ 找到DIB图像象素起始位置p_data = this->GetData();/ DIB的宽度LONG wide = GetDibWidthBytes();/ DIB的高度LONG height = GetHeight();/ 对各像素进行灰度转换for (j = 0; j < height; j +)for (i = 0; i <wide; i+)/ 对各像素进行灰度统计unsigned char te
13、mp = *(unsigned char *)p_data + wide * j + i);tongjitemp+; 显示原图像:void CLXHView:OnOriginal() / TODO: Add your command handler code herem_dialogOriginal.DestroyWindow();m_dialogOriginal.Create(m_filename);m_dialogOriginal.ShowWindow(SW_SHOW);阈值分割:void CLXHView:OnYuzhifenge() / TODO: Add your command h
14、andler code hereif(m_CDibNew.m_valid=TRUE)this->CopyOriginaltoNew();int tongji256;/初始为0memset(tongji, 0, sizeof(tongji);m_CDibNew.Fenbutongji(tongji); /统计直方图灰度值m_CDibNew.Diedaifazhi(tongji); /调用迭代法值检测处理函数else:MessageBox(NULL,"没有加载图像","错误",MB_ICONWARNING);显示分割结果:void CLXHView:OnResult() / TODO: Add your comm
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年儿童遥控玩具电池安全五年研究报告
- 小学英语口语教学中的个性化教学策略研究与应用教学研究课题报告
- 企业培训助理面试题及培训课程协助技巧含答案
- 迈瑞医疗财务分析师笔试模拟题集含答案
- 2025重庆经典物业管理有限公司招聘12人笔试参考题库附带答案详解(3卷合一版)
- 交通设施维护工面试题详解
- 中医药领域医生面试问题及答案
- 2025莆田市秀屿区通达供水有限公司招聘营业员1名笔试参考题库附带答案详解(3卷)
- 2025湖北交投智能检测股份有限公司秋季社会招聘11人笔试参考题库附带答案详解(3卷)
- 2025浙江宁波智邦市政工程有限公司招聘笔试及人员笔试参考题库附带答案详解(3卷)
- 2025-2026学年教科版小学科学新教材三年级上册期末复习卷及答案
- 中投公司高级职位招聘面试技巧与求职策略
- 2026中国大唐集团资本控股有限公司高校毕业生招聘考试历年真题汇编附答案解析
- 2025福建三明市农业科学研究院招聘专业技术人员3人笔试考试备考题库及答案解析
- 统编版(部编版)小学语文四年级上册期末测试卷( 含答案)
- 养老金赠予合同范本
- 2025年南网能源公司社会招聘(62人)考试笔试参考题库附答案解析
- 2025年河南中原国际会展中心有限公司社会招聘44名笔试备考题库附答案解析
- 推广示范基地协议书
- 消防员心理健康教育课件
- 2025年服装行业五年发展时尚产业与可持续发展报告
评论
0/150
提交评论