logo资料库

图像背景和前景的分离提取.pdf

第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
资料共9页,剩余部分请下载后查看
清华大学自动化系 数字图像处理 第二次作业 ZHT 张海涛 2008011535 2 0 1 1 年 1 0 月 3 1 日
数字图像处理 2011 年 10 月 31 日 1. 写出描述下图中目标体(灰色)边界的 4 链码,8 链码,4 链码微分,8 链码 微分,归一化 4 链码微分,和归一化 8 链码微分。图中"+"给出链码的起始 点。 解: 4 链码: 8 链码: 4 链码微分: 8 链码微分: 归一化 4 链码微分: 归一化 8 链码微分: 32223301000301211022 544660107023144 30010113003111303201 702021771216301 00101130031113032013 017020217712163 2. 假 定 4- 链 码 从 左 下 角 开 始 , 方 向 规 定 如 下 图 所 示 。 所 得 编 码 是 11100010030003332212223222 (1) 画出链码表示的图形,求此链码所表示的感兴趣区的面积; (2) 如何不画图而直接根据编码求面积(可以选用程序流程图、程序说明或者 数学公式来表示)。 解: (1) 如下图所示: S 面积=5*9-8=37(单位正方体的面积) 2
数字图像处理 2011 年 10 月 31 日 (2) 根据网上搜索资料,目前比较流行的是基于 Freeman 链码的图像中多 个区域面积的计算方法: 算法 基于 Freeman 4-链码的目标面积计算 step1 把目标面积变量 area 设为 0,把起始点的纵坐标值 y0 赋给变 量 y。 Step2 对每一个链码的元素(值 0,1,2,3)执行 3
数字图像处理 2011 年 10 月 31 日 switch (code) { case 0: area = area + y break; case 1: y = y + 1; break; case 2: area = area - y; break; case 3: y = y – 1; break; } Step3 如果所有的边界链元素都被处理过了,则目标面积在被保存在 变量 area 里。 算法 基于 Freeman 8-链码的目标面积计算 Step1 初始化,A=0, i=1。 Step2 对每一个链码的元素执行 Step3 结束。 算法 基于三角形的目标面积计算 Step1 计算出所有轮廓点的坐标,即 Step2 初始化,A = 0,i = 1。 Step3 对每一个链码元素执行 Step4 结束。 3. 请将下面的图和其直方图对应起来: 4
数字图像处理 2011 年 10 月 31 日 解: (a)对应(e); (b)对应(g); (c)对应(f); (d)对应(h)。 4. 图中白色代表位于本底的象素,其余代表前景象素。本底象素和前景象素之 间的距离是无限大。求: (a) 左上角点 p 和右下角点 q 之间的按城市街道距离和棋盘格距离计算的最 短路径长度。 (b) 前景的 8 连通区和 4 连通区的个数以及相应的背景连通区的个数。(注意, 背景区不以打格的地方为限,不是前景的地方即为背景) 解: P 与 q 之间的棋盘格距离:14 (a)p 与 q 之间的城市街道距离:21 (b)前景的 8-连通区个数:1;相应的背景 4-连通区个数:10; 前景的 4-连通区个数:9;相应的背景 8-连通区个数:4; 5. 请解释一般情况下: (a) 用 8 比特来表示灰度图的灰度,如果将最高位或者最低位都置 0,对该 图的直方图以及对比度是否产生影响?如果有影响,请说明。 (b) 为什么数字图像经直方图均衡化之后,直方图仍不能变成很平坦的。 解: (a)有影响,但影响不同。将最高位置 0,直方图中 128~255 的灰度数据叠加进 0~ 127 的区域内,对对比度的影响的也较大;将最低位置 0,直方图中相邻的两格合并, 但总体影响很小,对比度影响也较小。 (b)均衡化只是把峰拉伸了,不过峰值却并未改变,因此直方图不能变成平坦的。 5
数字图像处理 编程题 2011 年 10 月 31 日 目的:通过实际问题熟悉图像分割的理论和方法 内容:文字识别是图像处理中的一种典型应用,在大多数文字识别算法中,首先需要将文本 从背景中分离出来,以便进行倾斜校正和字符分割,因此分割的过程很重要。然而在实际应 用中,我们得到的经常是下图所示那样的图像,存在光照不足,阴影…… 请利用图像分割的理论和方法,对该图像进行二值分割处理,实现前景文字与背景的分离。 实验平台: 操作系统:Windows7 编程平台:MATLAB20011a 任务内容: 1) 原理: 图像分割方法选取: 全局阈值分割; 阈值选取: 为简单的中值, ; 分块全局: 但由于光线照明不足,阴暗等原因,全局的阈值在原始图像较暗的区域无 法有效的分离,故采用将图片分割成许多小块,每块用全局阈值分割; 修正: 由于图像最左侧空白部分,用中值作为阈值二分化,始终存在低灰度值的情况, 所以对于这部分,在进行分块全局阈值分割时,单另处理,全部赋值为 1,即只作为背 景. 2) 代码及其说明: 6 MaxMinLevel2
数字图像处理 2011 年 10 月 31 日 主程序模块: Image_original=imread('HW2.jpg'); %读取图像文件 figure,imshow(Image_original); title('ÔʼͼÏñ'); %输出原始图像 Image_gray=rgb2gray(Image_original); %转化为灰度图 Image_result=Image_division(Image_gray,97,97); %分块阈值分割处理 figure,imshow(Image_result); title('´¦Àíºó¶þÖµ»¯Í¼Ïñ'); %输出二进制处理图像 图像分块函数 Image_division(): function Image_result = Image_division(Image_gray,row_space_argument,col_space_argument) row=size(Image_gray,1); %原始矩阵行数 col=size(Image_gray,2); %原始矩阵列数 row_space=row_space_argument; %行间隔 col_space=col_space_argument; %列间隔 row_num=round(row/row_space); %行分割块数 col_num=round(col/col_space); %列分割块数 %区域分割 t1=(0:row_num-1)*row_space+1; %块行起始坐标 t2=(1:row_num)*row_space; %块行终止坐标 t3=(0:col_num-1)*col_space+1; %块列起始坐标 t4=(1:col_num)*col_space; %块列终止坐标 for i=1:row_num for j=1:col_num t1(i)=isboundary(t1(i),row); t2(i)=isboundary(t2(i),row); t3(i)=isboundary(t3(i),col); t4(i)=isboundary(t4(i),col); x=t1(i):t2(i); y=t3(j):t4(j); if(y>80) %对于边界的处理,全为1 temp = Image_gray(x,y); Image_result(x,y)=Image_handle(temp); else Image_result(x,y)=1; end end end end 7
数字图像处理 2011 年 10 月 31 日 阈值生成及二分化函数 Image_handle(): function Image_2bw = Image_handle( Image_gray ) Image_max=double(max(max(Image_gray))); %最大值并输出双精度值 Image_min=double(min(min(Image_gray))); %最小值并输出双精度值 level=((Image_max+Image_min)/2)/255; %获得最佳阈值 Image_2bw_temp=im2bw(Image_gray,level); %转化为二进制图像 Image_2bw=double(Image_2bw_temp); end 图像分块越界函数 isboundary (): function temp = isboundary(temp,stdard) if (temp >= stdard) temp = stdard; end end 3) 效果展示: 8
分享到:
收藏