作者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
推 hairless:我愛您^3^ 06/06 14:18
推 lingpxs:怎麼覺的老大講話越來越風趣了...= = 06/07 15:51
→ shin696:作業可以都m起來嗎?我總覺得一年會後我會用到...-_-" 06/10 21:08