fourier_discreptor.m

来自「在matlab环境下」· M 代码 · 共 37 行

M
37
字号
    clear;
    clc;
    close all;    
    % read a file contents  curve data
    [filename, pathname] = uigetfile({'*.c', 'All c-Files (*.c)'; '*.dat', 'All tif-Files (*.dat)';'*.*','All Files (*.*)'},'Select a curve');
    % If "Cancel"  then return
    if isequal([filename,pathname],[0,0])
        return
    end 
    File = fullfile(pathname,filename);
    strImage=strcat(pathname,filename);
    sfz_x =fd_function(strImage);%选取一幅图像作为标准形状
    % 调用子函数得到各个图像形状描述的特征矢量
    f1='E:\学习工具\数字图像处理\12.5作业\shape_analysis\kk99.c';
    sfz(1,:) =fd_function(f1);
    f2='E:\学习工具\数字图像处理\12.5作业\shape_analysis\kk353.c';
    sfz(2,:) =fd_function(f2);
    f3='E:\学习工具\数字图像处理\12.5作业\shape_analysis\kk354.c';
    sfz(3,:) =fd_function(f3);
    f4='E:\学习工具\数字图像处理\12.5作业\shape_analysis\kk395.c';
    sfz(4,:) =fd_function(f4);
    f5='E:\学习工具\数字图像处理\12.5作业\shape_analysis\kk396.c';
   sfz(5,:) =fd_function(f5);
    f6='E:\学习工具\数字图像处理\12.5作业\shape_analysis\kk1063.c';
    sfz(6,:) =fd_function(f6);
    % 与所选的标准矢量作距离差
    d=zeros(1,6);
    d(1)=sum(abs(sfz_x-sfz(1,:)));
    d(2)=sum(abs(sfz_x-sfz(2,:)));
    d(3)=sum(abs(sfz_x-sfz(3,:)));
    d(4)=sum(abs(sfz_x-sfz(4,:)));
    d(5)=sum(abs(sfz_x-sfz(5,:)));
  d(6)=sum(abs(sfz_x-sfz(6,:)));
    %对距离排序,取出最小值
     k=sort(d);
    mind=k(2);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?