作者maokejackson (百年难得发表文章)
看板PCCU-CS
标题[作业] 影像处理作业7
时间Wed Jun 6 12:38:47 2007
题目:细线化指纹影像
下载指纹影像
http://www.badongo.com/file/3317703
共13张,已事先强化过
============================== 程式范例 =============================
filename = '01.tif'; % 档名
kernel = [0 1 0; 1 1 1; 0 1 0]; % 遮罩
cycles = 1; % 细线化的次数
img = imread(filename); % 读档
bimg = zeros(size(img)); % 二元影像
bimg(img < 128) = 1; % 二元化
simg = zeros(size(img)); % 细线化影像
eimg = bimg; % 侵蚀影像
while any(eimg(:))
oimg = imopen(eimg,kernel); % 开合影像
simg = simg | (eimg & ~oimg); % 侵蚀影像 - 开合影像
eimg = imerode(eimg,kernel); % 侵蚀
cycles = cycles + 1;
end
imshow(simg)
============================== 程式结束 =============================
就这麽简单?
当然... 不是啦
针对指纹的细线化,可以去Google找资料
我的做法是用一个3x3的遮罩
+---+---+---+
| 8 | 1 | 2 | 根据号码顺序形成一个回圈,定义以下两个变数
+---+---+---+
| 7 |
V | 3 | NOO : 数值为1的个数
+---+---+---+
| 6 | 5 | 4 | COS : 数值由0变1的个数
+---+---+---+
一次细线化过程分两个步骤,当步骤里四个条件都满足时
V值会由1变0,也就是消掉。
步骤一
1. 2 <= NOO <= 6
2. COS = 1
3. blk(1) * blk(3) * blk(7) = 0
4. blk(1) * blk(5) * blk(7) = 0
步骤二
1. 2 <= NOO <= 6
2. COS = 1
3. blk(1) * blk(3) * blk(5) = 0
4. blk(3) * blk(5) * blk(7) = 0
这个方法非常耗时间,不能把断掉的纹路接起来,还会有小分叉。
要程式码的私底下msn敲我,over
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.133.89.82
1F:推 hairless:我爱您^3^ 06/06 14:18
2F:推 lingpxs:怎麽觉的老大讲话越来越风趣了...= = 06/07 15:51
3F:→ shin696:作业可以都m起来吗?我总觉得一年会後我会用到...-_-" 06/10 21:08