DIP第十章习题解答
数字图像处理 第十章课后作业
文档地址:https://download.csdn.net/download/qq_44143405/12549552
如果不能下载请邮件联系(说明来意):1208664602@qq.com
第一题
10-2 设有一幅包含有水平直线、垂直直线、 方向直线和 -方向直线的二值图像。给出一组大小为 5×5 的模板,要求这些模板可用于检测这些直线中的1像素间断。假设直线和背景的灰度分别是1和0。
答:掩模将具有下图所示的系数。当每个遮罩以在该遮罩所偏向的方向上定向的连续 5 像素段的像素为中心时,每个遮罩将产生 0 值。相反,当一个掩模位于 5 像素段中的一个像素间隙上时,响应为 +4 ,该 5 像素段的方向是该掩模所偏向的方向。
0 |
0 |
0 |
0 |
【DIP第十章习题解答】0 |
|
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
0 |
0 |
1 |
0 |
0 |
1 |
1 |
-4 |
1 |
1 |
|
0 |
0 |
-4 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
|
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
|
0 |
1 |
0 |
0 |
0 |
0 |
0 |
-4 |
0 |
0 |
|
0 |
0 |
-4 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
|
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
|
0 |
0 |
0 |
0 |
1 |
第二题
10-29 使用10.3.2节的基本全局阈值处理算法得到的阈值与起始点无关吗?如果您的回答是“是”,证明它,如果回答是“不”,给出一个例子。
附:
第一题代码块
Image=imread('pattern.jpg');
Th=graythresh(Image);
OriginBW=im2bw(Image,Th);
BW1=1-OriginBW;
se=strel('square',5); %结构元素为边长为5的正方形
BW2=1-imopen(BW1,se);
se45=strel('line',25,45); %结构元素为角度为45的线,长度为25个像素
BW3=1-imopen(BW1,se45);
se_45=strel('line',25,-45); %结构元素为角度为45的线,长度为25个像素
BW4=1-imopen(BW1,se_45);
figure;
subplot(221),imshow(OriginBW); title('原始二值图像');
subplot(222); imshow(BW2); title('矩形块提取');
subplot(223); imshow(BW3); title('45线段提取');
subplot(224); imshow(BW4); title('-45线段提取');
se0=strel('line',5,0); %结构元素为水平线,长度为25个像素
BW5=1-imopen(BW1,se0);
se90=strel('line',5,90); %结构元素为垂直的线,长度为25个像素
BW6=1-imopen(BW1,se90);
figure;
subplot(131),imshow(OriginBW); title('原始二值图像');
subplot(132),imshow(BW5); title('水平线段提取');
subplot(133); imshow(BW6); title('垂直线段提取');
第二题代码块
clear,clc,close all;
Image=rgb2gray(imread('lotus1.jpg'));
figure,imshow(Image),title('原始图像');
imhist(Image);
hist1=imhist(Image);
hist2=hist1;
iter=0;
while 1
[is,peak]=Bimodal(hist1);
if is==0
hist2(1)=(hist1(1)*2+hist1(2))/3;
for j=2:255
hist2(j)=(hist1(j-1)+hist1(j)+hist1(j+1))/3;
end
hist2(256)=(hist1(255)+hist1(256)*2)/3;
hist1=hist2;
iter=iter+1;
if iter>1000
break;
end
else
break;
end
end
[trough,pos]=min(hist1(peak(1):peak(2)));
thresh=pos+peak(1);
figure,stem(1:256,hist1,'Marker','none');
hold on
stem([thresh,thresh],[0,trough],'Linewidth',2);
hold off
result=zeros(size(Image));
result(Image>thresh)=1;
figure,imshow(result),title('基于双峰直方图的阈值化');
imwrite(result,'bilotus1.jpg');
Image=rgb2gray(imread('lotus1.jpg'));
figure,imshow(Image),title('原始图像');
T=graythresh(Image);
result1=im2bw(Image,T);
figure,imshow(result1),title('OTSU方法二值化图像 ');
figure,
subplot(221),imshow(Image),title('原始图像');
subplot(222),imhist(Image);
subplot(223),imshow(result),title('基于双峰直方图的阈值化');
subplot(224),imshow(result1),title('OTSU方法二值化图像 ');
function [is,peak]=Bimodal(histgram)
count=0;
for j=2:255
if histgram(j-1) count=count+1;
peak(count)=j;
if count>2
is=0;
return;
end
end
end
if count==2
is=1;
else
is=0;
end
end
推荐阅读
- 宽容谁
- 一个人的旅行,三亚
- 第6.2章(设置属性)
- 布丽吉特,人生绝对的赢家
- 家乡的那条小河
- 讲述,美丽聪明的海欧!
- PMSJ寻平面设计师之现代(Hyundai)
- 野营记-第五章|野营记-第五章 讨伐梦魇兽
- 夜游宫|夜游宫 心语
- 增长黑客的海盗法则