亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? fpextractdemo.m

?? Files in matlab source code for watermarking techniqe
?? M
?? 第 1 頁 / 共 2 頁
字號:
function fpextractdemo(action, varargin)
%	FPEXTRACTDEMO 指紋特征提取演示程序
%   Modified by PRTsinghua@hotmail.com
%
% 輸入圖像必須是256×256的灰度圖
% 8-bit灰度級的圖像 @ 500 dpi.
% 如果這些條件不滿足,一些函數中的參數必須做相應的改變
% 
%  
%   選項:
%     - Centralize:    二值化圖像,計算中心點
%     - Crop:          圖像修剪
%     - Sectorize:     可視化扇形
%     - Normalize:     歸一化輸入圖像
%     - Gabor filters: 可視化Gabor濾波器
%     - Convolute:     計算輸入圖像和Gabor濾波器的convolution
%     - Features:      特征可視化
%     - FingerCode:    在數據庫中加入該指紋
%     - Check:         指紋匹配
%
%
% 指紋識別中一個至關重要的步驟就是中心點的確定。如果剪切指紋圖像時出現了任何
% 錯誤,你可以使用輔助的m文件"vedicentro.m":它使得輸入指紋可視化并計算指紋
% 中心,借助于m函數 "centralizing.m"。
%
% 在MATLAB的命令行提示中輸入 "fpextractdemo" 運行程序


%--------------------------------------------------------------------------
if nargin<1,
    action='InitializeFPEXTRACTDEMO';
end;

feval(action,varargin{:})
return;

%%%
%%%  子函數 - InitializeFPEXTRACTDEMO
%%%

function InitializeFPEXTRACTDEMO()

% 如果 fpextractdemo 已經在運行,將之轉到前臺
h = findobj(allchild(0), 'tag', 'Extracting FingerPrint Features Demo ( Modified by PRTsinghua@hotmail.com v) ');
if ~isempty(h)
    figure(h(1))
    return
end

screenD = get(0, 'ScreenDepth');
if screenD>8
    grayres=256;
else
    grayres=128;
end


FpextractDemoFig = figure( ...
    'Name','指紋特征提取演示程序 Modified by  PRTsinghua@hotmail.com', ...
    'NumberTitle','off', 'HandleVisibility', 'on', ...
    'tag', '指紋特征提取演示程序', ...
    'Visible','off', 'Resize', 'off',...
    'BusyAction','Queue','Interruptible','off', ...
    'Color', [.8 .8 .8], ...
    'IntegerHandle', 'off', ...
    'Colormap', gray(grayres));

figpos = get(FpextractDemoFig, 'position');
figpos(3:4) = [1024 525];
% Adjust the size of the figure window
horizDecorations = 10;  % 調整大小.
vertDecorations = 45;   % 標題欄.
screenSize = get(0,'ScreenSize');

dx = screenSize(3) - figpos(1) - figpos(3) - horizDecorations;
dy = screenSize(4) - figpos(2) - figpos(4) - vertDecorations;
if (dx < 0)
    figpos(1) = max(5,figpos(1) + dx);
end
if (dy < 0)
    figpos(2) = max(5,figpos(2) + dy);
end
set(FpextractDemoFig, 'position', figpos);

rows = figpos(4); 
cols = figpos(3);

% Colors
bgcolor = [0.45 0.45 0.45];	% 背景顏色
wdcolor = [.8 .8 .8];  		% Window 顏色
fgcolor = [1 1 1];			% 文本

hs = (cols-(6*175)) / 5;	% 水平間隔
vs = (rows)/8;				% 垂直間隔

%====================================
% 所有菜單和按鈕的參數

Std.Interruptible = 'off';
Std.BusyAction = 'queue';

% Defaults for image axes
Ax = Std;
Ax.Units = 'Pixels';
Ax.Parent = FpextractDemoFig;
Ax.ydir = 'reverse';
Ax.XLim = [.5 128.5];
Ax.YLim = [.5 128.5];
Ax.CLim = [0 1];
Ax.XTick = [];
Ax.YTick = [];

Img = Std;
Img.CData = [];
Img.Xdata = [1 128];
Img.Ydata = [1 128];
Img.CDataMapping = 'Scaled';
Img.Erasemode = 'none';

Ctl = Std;
Ctl.Units = 'Pixels';
Ctl.Parent = FpextractDemoFig;

Btn = Ctl;
Btn.Style = 'pushbutton';
Btn.Enable = 'off';

Edit = Ctl;
Edit.Style = 'edit';
Edit.HorizontalAlignment = 'right';
Edit.BackgroundColor = 'white';
Edit.ForegroundColor = 'black';

Menu = Ctl;
Menu.Style = 'Popupmenu';

Text = Ctl;
Text.Style = 'text';
Text.HorizontalAlignment = 'left';
Text.BackgroundColor = bgcolor;
Text.ForegroundColor = fgcolor;

%================================
% 0 度 
ud.hComponent1Axes = axes(Ax, ...
    'Position', [0*vs/6 5*vs-vs/6 175 175]);
title('0度');
ud.hComponent1Image = image(Img, ...
    'Parent', ud.hComponent1Axes);
%================================
% 原始指紋圖像 
ud.hOriginalAxes = axes(Ax, ...
    'Position', [cols/2-128 5*vs-vs/6-81 256 256]);
title('原始指紋圖像');
ud.hOriginalImage = image(Img, ...
    'Parent', ud.hOriginalAxes);
ud.OriginalImageIsStale = 1;

%================================
% 157.5 度 
ud.hComponent8Axes = axes(Ax, ...
    'Position', [cols-175 5*vs-vs/6 175 175]);
title('157.5 度組成');
ud.hComponent8Image = image(Img, ...
    'Parent', ud.hComponent8Axes);

%=================================
% 22.5 度 
ud.hComponent2Axes = axes(Ax, ...
    'Position', [hs vs/2 175 175]);
title('22.5 度組成');
ud.hComponent2Image = image(Img, ...
    'Parent', ud.hComponent2Axes);

%================================
% 45 度 
ud.hComponent3Axes = axes(Ax, ...
    'Position', [2*hs+1*175 vs/2 175 175]);
title('45 度組成');
ud.hComponent3Image = image(Img, ...
    'Parent', ud.hComponent3Axes);

%================================
% 67.5 度 
ud.hComponent4Axes = axes(Ax, ...
    'Position', [3*hs+2*175 vs/2 175 175]);
title('67.5 度組成');
ud.hComponent4Image = image(Img, ...
    'Parent', ud.hComponent4Axes);

% 90 度 
ud.hComponent5Axes = axes(Ax, ...
    'Position', [4*hs+3*175 vs/2 175 175]);
title('90 度組成');
ud.hComponent5Image = image(Img, ...
    'Parent', ud.hComponent5Axes);

%=================================
% 112.5 度 
ud.hComponent6Axes = axes(Ax, ...
    'Position', [5*hs+4*175 vs/2 175 175]);
title('112.5 度組成');
ud.hComponent6Image = image(Img, ...
    'Parent', ud.hComponent6Axes);
%=================================
% 135 度 
ud.hComponent7Axes = axes(Ax, ...
    'Position', [6*hs+5*175 vs/2 175 175]);
title('135 度組成');
ud.hComponent7Image = image(Img, ...
    'Parent', ud.hComponent7Axes);

%=================================
%  框架
ud.hControlFrame = uicontrol(Std, ...
    'Parent', FpextractDemoFig, ...
    'Style', 'Frame', ...
    'Units', 'pixels', ...
    'Position', [vs/6 5*vs-vs/6-81 200 vs+vs/8], ...
    'BackgroundColor', bgcolor);

%====================================
% 圖像彈出菜單
ud.hImgPop = uicontrol(Menu, ...
    'Position',[vs/6+vs/8 5*vs-2*vs/3+7 180 vs/16], ...
    'String','Whorl|Twin loop|Left loop|Right loop|Other image', ...
    'Callback','fpextractdemo(''LoadNewImage'')');

% 文字標簽
uicontrol( Text, ...
    'Position',[vs/6+vs/8 5*vs-vs/6-vs/3-2 180 vs/4], ...
    'String','選擇指紋類型:');

%====================================
% 彈出菜單
ud.hSelectStepPop = uicontrol(Menu, ...
    'Position',[vs/6+vs/8 4*vs-7 120 vs/16], ...
    'String','Centralize|Crop|Sectorize|Normalize|Gabor filters|Convolute|Features|FingerCode|Check', ...
    'Callback','fpextractdemo(''SelectExtractingStep'')');
% 文字標簽
uicontrol( Text, ...
    'Position',[vs/6+vs/8 4*vs-4 90 vs/4], ...
    'String','選擇步驟:');

%====================================
%  Info 和 Close 的框架
ud.hInfoCloseFrame = uicontrol(Std, ...
    'Parent', FpextractDemoFig, ...
    'Style', 'Frame', ...
    'Units', 'pixels', ...
    'Position', [3*hs+2*175 2 vs/2+2*175 vs/2-4], ...
    'BackgroundColor', bgcolor);

%====================================
% 按鈕 - Info 和 Close
ud.hInfo=uicontrol(Btn, ...
    'Position',[3*hs+2*175+vs/2 7 vs/8+135-vs/2 vs/4], ...
    'String','幫助', ...
    'Callback','helpwin fpextractdemo');

ud.hClose=uicontrol(Btn, ...
    'Position',[4*hs+3*175+vs/2 7 vs/8+135-vs/2 vs/4], ...
    'String','關閉', ...
    'Callback','close(gcbf)');
%====================================
% 狀態欄
ud.hStatus = uicontrol(Std, ...
    'Parent', FpextractDemoFig, ...
    'Style','text', ...
    'Units','pixels', ...
    'Position',[hs vs/8 2*175-vs/8 vs/4], ...
    'Foreground', [.8 0 0], ...
    'Background',wdcolor, ...
    'Horiz','center', ...
    'Tag', 'Status', ...
    'String','初始化程序...');

set(FpextractDemoFig, 'UserData', ud);
set(FpextractDemoFig, 'visible','on','HandleVisibility','callback');
set([ud.hInfo ud.hClose], 'Enable', 'on');

LoadNewImage(FpextractDemoFig);
SelectExtractingStep(FpextractDemoFig);
return

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%
%%%  子函數 - LoadNewImage
%%%

function LoadNewImage(DemoFig)
% 加載新圖像

if nargin<1
    DemoFig = gcbf;
end

set(DemoFig,'Pointer','watch');
ud=get(DemoFig,'Userdata');
v = get(ud.hImgPop,{'value','String'});
name = deblank(v{2}(v{1},:));
drawnow

switch name
    case 'Right loop',
        namefile='37_7.bmp';
        [img,map]=imread(namefile);
    case 'Whorl',
        namefile='19_7.bmp';
        [img,map]=imread(namefile);
    case 'Left loop',
        namefile='37_3.bmp';
        [img,map]=imread(namefile);
    case 'Twin loop',
        namefile='37_5_2.bmp';
        [img,map]=imread(namefile);
    case 'Other image',        
        [namefile,pathname]=uigetfile('*.bmp','請選擇一個256×256的灰度位圖');
        if namefile~=0
            [img,map]=imread(strcat(pathname,namefile));
        else
            disp('   Chose a file!  ');
            [img,map]=imread('37_7.bmp');
        end
    otherwise 
        error('fpextractdemo: Unknown Image Option!');
end
% 如果圖像大小 N x M 且 mod(N,8)~=0 或者 mod(M,8)~=0
% 則改變圖像大小
imgN=size(img,1);
imgM=size(img,2);
modN=mod(imgN,8);
modM=mod(imgM,8);

%----------------------------------------
% 將信息保存在 informations.dat
if isa(img,'uint8')
    graylevmax=2^8-1;
end
if isa(img,'uint16')
    graylevmax=2^16-1;
end
if isa(img,'uint32')
    graylevmax=2^32-1;
end
save('informations.dat','graylevmax','img');
%-----------------------------------------
% 改變圖像大小
%-----------------------------------------
img=img(modN+1:imgN,modM+1:imgM);
%-----------------------------------------
img = double(img)/graylevmax;
set(get(ud.hOriginalAxes, 'title'), 'string', '原始指紋圖像');
set(get(ud.hComponent1Axes, 'title'), 'string', '0 度組成');
set(get(ud.hComponent6Axes, 'title'), 'string', '112.5 度組成');
set(ud.hOriginalImage, 'Cdata', img);
set(DemoFig,'Pointer','arrow');
setstatus(DemoFig,'Please select a step to process...');
return;

%========================================
%%%
%%%  子函數 - SelectExtractingStep
%%%

function SelectExtractingStep(DemoFig)
% Load a step

if nargin<1
    DemoFig = gcbf;
end

set(DemoFig,'Pointer','watch');
ud=get(DemoFig,'Userdata');
v = get(ud.hSelectStepPop,{'value','String'});
name = deblank(v{2}(v{1},:));
drawnow

switch name
    case 'Centralize',
        Centralize(DemoFig);
    case 'Crop',
        Crop(DemoFig);
    case 'Sectorize',
        Sectorize(DemoFig);
    case 'Normalize',
        Normalize(DemoFig);
    case 'Gabor filters',
        Gaborfilter(DemoFig);
    case 'Convolute',
        Convolute(DemoFig);
    case 'Features',
        Features(DemoFig);
    case 'FingerCode',
        Fingercode(DemoFig);
    case 'Check',
        Check(DemoFig);
    otherwise 
        error('fpextractdemo: Unknown Image Option!');
end

return;

%==========================================================================
%%%
%%%  子函數 - Centralize
%%%

function Centralize(DemoFig)

load 'informations.dat' -mat

if nargin<1
    DemoFig = gcbf;
end
set(DemoFig,'Pointer','watch');
setstatus(DemoFig,'正在計算中心,請等待......');
ud=get(DemoFig,'Userdata');
fingerprint = getimage(ud.hOriginalImage);
fingerprint = fingerprint*graylevmax;

[BinarizedPrint,XofCenter,YofCenter] = centralizing(fingerprint,0);

set(get(ud.hComponent8Axes, 'title'), 'string', '二值化圖像');
set(ud.hComponent8Image, 'Cdata', BinarizedPrint);
set(DemoFig,'Pointer','arrow');
setstatus(DemoFig,'Finished centralization');
ud.OriginalImageIsStale = 0;
set(DemoFig, 'UserData', ud);
drawnow

%==========================================================================
%%%
%%%  子函數 - Crop
%%%

function Crop(DemoFig)
% 
load 'informations.dat' -mat
if nargin<1
    DemoFig = gcbf;
end
set(DemoFig,'Pointer','watch');
setstatus(DemoFig,'正在剪切,請等待......');
ud=get(DemoFig,'Userdata');
fingerprint = getimage(ud.hOriginalImage);

fingerprint = fingerprint*graylevmax;

[BinarizedPrint,XofCenter,YofCenter]=centralizing(fingerprint,0);
[CroppedPrint]=cropping(XofCenter,YofCenter,fingerprint);

CroppedPrint = double(CroppedPrint)/graylevmax;
set(get(ud.hComponent1Axes, 'title'), 'string', 'Cropped Print');
set(ud.hComponent1Image, 'Cdata', CroppedPrint);
set(get(ud.hComponent8Axes, 'title'), 'string', 'Binarized Print');
set(ud.hComponent8Image, 'Cdata', BinarizedPrint);
set(DemoFig,'Pointer','arrow');
setstatus(DemoFig,'Finished Crop');
ud.Component1ImageIsStale = 0;
set(DemoFig, 'UserData', ud);
drawnow

%==========================================================================
%%%
%%%  子函數 - Sectorize
%%%

function Sectorize(DemoFig) 
load 'informations.dat' -mat

if nargin<1
    DemoFig = gcbf;
end
set(DemoFig,'Pointer','watch');
setstatus(DemoFig,'正在扇形化,請等待......');
ud=get(DemoFig,'Userdata');
fingerprint = getimage(ud.hOriginalImage);

fingerprint = fingerprint*graylevmax;

[BinarizedPrint,XofCenter,YofCenter]=centralizing(fingerprint,0);
[CroppedPrint]=cropping(XofCenter,YofCenter,fingerprint);
for ( i=1:1:175*175)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美综合在线视频| 亚洲免费观看高清在线观看| 国产午夜久久久久| 亚洲成精国产精品女| 国产馆精品极品| 欧美一区二区三区在线| 亚洲欧美激情视频在线观看一区二区三区 | 欧美无人高清视频在线观看| 欧美成人乱码一区二区三区| 亚洲蜜臀av乱码久久精品| 韩国欧美一区二区| 4438x成人网最大色成网站| 亚洲丝袜美腿综合| 成人av午夜电影| 久久久电影一区二区三区| 午夜欧美电影在线观看| 97精品久久久午夜一区二区三区| 久久久国产一区二区三区四区小说| 午夜精品久久久久久久99水蜜桃 | 亚洲欧洲美洲综合色网| 激情综合五月婷婷| 日韩精品最新网址| 日本成人在线视频网站| 精品视频在线免费| 亚洲高清视频的网址| 色婷婷狠狠综合| ●精品国产综合乱码久久久久| 国产高清在线精品| 日韩精品一区二区三区在线| 亚洲成人免费影院| 欧美日韩国产片| 五月激情丁香一区二区三区| 欧美日本乱大交xxxxx| 一区二区激情视频| 91福利视频在线| 亚洲精品乱码久久久久久黑人| 91在线观看视频| 亚洲人吸女人奶水| 欧美在线一二三| 亚洲第一在线综合网站| 欧美猛男超大videosgay| 亚洲曰韩产成在线| 欧美日韩mp4| 免费成人美女在线观看.| 亚洲精品一区二区三区香蕉| 国产一区二区三区四区在线观看 | 91精品国模一区二区三区| 天天爽夜夜爽夜夜爽精品视频| 欧美日韩一二区| 毛片av中文字幕一区二区| 欧美tk—视频vk| 丁香桃色午夜亚洲一区二区三区| 中文字幕的久久| 在线一区二区三区| 日韩 欧美一区二区三区| 精品久久久久久最新网址| 国产电影一区在线| 中文字幕一区二区三区在线观看 | 午夜精品国产更新| 日韩亚洲欧美中文三级| 国产激情精品久久久第一区二区 | 丝袜亚洲另类欧美| 久久一日本道色综合| 成人激情图片网| 无码av中文一区二区三区桃花岛| 欧美一区二区三区电影| kk眼镜猥琐国模调教系列一区二区| 亚洲六月丁香色婷婷综合久久 | 色综合久久久久综合99| 日韩精品一卡二卡三卡四卡无卡| 精品日本一线二线三线不卡| kk眼镜猥琐国模调教系列一区二区| 亚洲成a人片在线观看中文| 国产欧美一区视频| 7777女厕盗摄久久久| 国产.精品.日韩.另类.中文.在线.播放| 综合久久一区二区三区| 欧美岛国在线观看| 91蝌蚪porny| 国产麻豆视频一区| 亚洲第一成年网| 18成人在线观看| 久久久久久97三级| 3atv在线一区二区三区| 成人亚洲一区二区一| 日本强好片久久久久久aaa| 成人免费在线播放视频| 精品国产伦一区二区三区观看方式| 色综合久久综合| 国产在线精品免费| 日本欧美加勒比视频| 亚洲激情自拍偷拍| 国产精品午夜电影| 久久在线观看免费| 欧美不卡一二三| 欧美高清精品3d| 91久久精品国产91性色tv| 成人激情免费网站| 成人综合婷婷国产精品久久| 免费看日韩精品| 亚洲最快最全在线视频| 中文字幕一区二区三区乱码在线| 亚洲精品一区二区三区影院 | 免费在线一区观看| 亚洲高清视频在线| 一区二区三区精品在线| 国产精品理伦片| 国产精品天干天干在观线| xfplay精品久久| 精品国产网站在线观看| 精品久久久久久无| 精品动漫一区二区三区在线观看 | 在线一区二区三区四区五区| 成人aa视频在线观看| 国产精品羞羞答答xxdd| 国产又黄又大久久| 国产成人精品亚洲日本在线桃色| 久久激情五月激情| 青青草视频一区| 国产在线国偷精品免费看| 国产综合一区二区| 国产美女视频91| 不卡免费追剧大全电视剧网站| 国产精品一二三区在线| 成人av在线观| 91视频免费播放| 在线看国产一区二区| 91精品在线观看入口| 日韩精品一区二区三区中文精品| 久久视频一区二区| 亚洲国产经典视频| 亚洲一二三四在线| 麻豆成人91精品二区三区| 国产精品一线二线三线| av网站免费线看精品| 色婷婷国产精品| 3d成人动漫网站| 欧美激情在线免费观看| 亚洲一区二区三区精品在线| 视频一区中文字幕国产| 国产一区中文字幕| 91小宝寻花一区二区三区| 欧美日韩激情在线| 亚洲精品一区二区在线观看| 中文字幕一区二区三区四区| 午夜av区久久| 国产v日产∨综合v精品视频| 91久久国产最好的精华液| 精品国产乱码久久久久久牛牛| 国产午夜一区二区三区| 夜夜亚洲天天久久| 国产老女人精品毛片久久| 在线观看一区二区精品视频| 精品国产一区二区三区av性色| 中文字幕一区二区三| 免费在线观看成人| 99re在线精品| 精品对白一区国产伦| 亚洲一区二区三区四区五区黄| 狠狠色丁香久久婷婷综| 日本精品免费观看高清观看| 欧美精品一区二区三区高清aⅴ | 欧美视频一区在线| 国产蜜臀97一区二区三区| 亚洲第一精品在线| 成人av网站在线观看免费| 欧美一区二区三区电影| 亚洲免费观看视频| 国产ts人妖一区二区| 欧美一区二区三区白人 | 亚洲欧洲另类国产综合| 丝瓜av网站精品一区二区 | 懂色一区二区三区免费观看 | 在线观看国产精品网站| 日本一区二区视频在线观看| 日韩精品视频网站| 日本久久电影网| 中文字幕一区二区三区四区不卡 | 狠狠色丁香久久婷婷综合_中 | 国产精品视频麻豆| 国产一区二区成人久久免费影院| 欧美偷拍一区二区| 亚洲视频一区二区在线观看| 国产成人精品在线看| 久久久久国产精品厨房| 精品一区二区在线播放| 欧美蜜桃一区二区三区| 亚洲精品国产精华液| 91亚洲精华国产精华精华液| 国产精品视频yy9299一区| 国产成人在线免费| 国产欧美精品一区二区三区四区| 精品亚洲成av人在线观看| 欧美大黄免费观看| 蜜臀va亚洲va欧美va天堂 | 国产一区二区三区香蕉| 精品99久久久久久| 国产美女av一区二区三区| 日韩欧美国产精品| 精品一二三四区|