www.gusucode.com > 用matlab语言实现了识别指纹、比较两个指纹图像相似度等功能 > code21/whichsector.m
function [sector_num] = whichsector(index) % Modiofied by Luigi Rosa % index is the index of current pixel of cropped image ( cropped image is % 175 x 175 ); sector_num is the output and represents what is the % corresponding sector. global immagine n_bands h_bands n_arcs h_radius h_lato n_sectors matrice length = h_lato; x = rem( index , length ); y = floor(index / length); x = x - floor(length / 2); y = y - floor(length / 2); rad = (x*x) + (y*y); if rad < (h_radius*h_radius) % innerest radius = 12 (144=12*12) sector_num = (n_sectors-1)+1; sector_num; return end if rad >= (h_bands*n_bands+h_radius)^2 % outtest radius = 72 (5184=72*72) sector_num = (n_sectors-1)+2; sector_num; return end if x ~= 0 theta = atan( y / x ); else if y > 0 theta = pi/2; else theta = -pi/2; end end if x < 0 theta = theta + pi; else if theta < 0 theta = theta + 2*pi; end end if theta < 0 theta = theta + 2*pi; end r = floor(rad ^ 0.5); ring = floor(( r-h_radius )/h_bands); arc = floor(theta /(2*pi/n_arcs)); sector_num = ring * n_arcs + arc;