⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 binalize.m

📁 本程序用于对来自USPS字符库的数字图像进行二值化处理
💻 M
字号:
function A = binalize(picture);

[X , Y] = size(picture);
A = zeros(X,Y);
for i = 1:X
    for j = 1:Y
        if(picture(i,j)>128)
            A(i,j) = 255;
        else
            A(i,j) = 0;
        end
    end
end

%***********此处的分类器是根据待识样本与样本库进行搜索匹配实现,而搜索的根据是各特征方差的有序搜索************%
%function classifier_search()

%%%%%%%%%% 可见光
feature_file = 'data_visual_compoundfeature(jeep42pk42mianbao44taxi42).bin'; % 所有类的样本特征矢量保存文件
searchdata_file = 'data_visual_search(jeep42pk42mianbao44taxi42).bin'; % 搜索信息保存文件
num_feature = 26;
num_class = 170;

% %%%%%%%%%% 红外
% feature_file = 'data_ir_compoundfeature(jeep43pk45mianbao41taxi43).bin'; % 所有类的样本特征矢量保存文件
% searchdata_file = 'data_ir_search(jeep43pk45mianbao41taxi43).bin'; % 搜索信息保存文件
% num_feature = 26;
% num_class = 172;

feature_mean = zeros(1 , num_feature); % 多个类同一特征的均值
feature_diff = zeros(1 , num_feature); % 多个类同一特征的方差
feature_span = zeros(1 , num_feature); % 同一特征的分布宽度(最大值-最小值)
search_order = zeros(1 , num_feature); % 据方差值大小得出的,分类时特征的比较(搜索)顺序

%*******************读取特征数据********%
all_feature = zeros(num_class , num_feature);
filename = fopen(feature_file , 'a+'); % open a feature file for reading
for i = 1:num_class
    all_feature(i,:) = (fread(filename , num_feature , 'double'))'; % 以特征向量为单位读取数据
end
fclose(filename);

%***********计算各特征均值(各类同特征间平均)**********%
for k = 1:num_feature 
    for i = 1:num_class
        feature_mean(k) = feature_mean(k) + all_feature(i,k); 
    end
    feature_mean(k) = feature_mean(k)/num_class;
end
feature_mean

% ***********计算各特征宽度(最大值和最小值间的差)************%
for k = 1:num_feature 
    feature_max = max(all_feature(1:num_class , k));
    feature_min = min(all_feature(1:num_class , k)); 
    feature_span(k) = feature_max - feature_min + 0.0001; % "+ 0.0001"是为了避免0值导致的错误
end
feature_span

% *************各特征相对散度(各类同特征与该特征平均均值差值的相对比例)*************%
for k = 1:num_feature 
    for i = 1:num_class
        feature_diff(k) = feature_diff(k) + abs(  all_feature(i,k) - feature_mean(k) ) / feature_span(k) ; 
    end
    feature_diff(k) = feature_diff(k)/num_class;
end
feature_diff

for i = 1:num_feature
    search_order(i) = i; % 初始化搜索顺序
end
% *************按各特征相对散度对特征序号进行排序,散度大的在前*************%
% 经实验表明,搜索顺序应将形状矩和统计特征分开排序: 长宽比为1号,形状矩从大到小随后,统计特征从大到小再随后 ?????????????????????
for i = 1:num_feature
    for k = 1:num_feature-1
        if feature_diff(search_order(k))<feature_diff(search_order(k+1)) %
            t = search_order(k);
            search_order(k) = search_order(k+1);
            search_order(k+1) = t;
        end
    end
end
search_order       

%****************保存搜索信息*****************%
file_w = fopen(searchdata_file , 'w+'); % create a file to store coded data
fwrite(file_w , num_class , 'double');
fwrite(file_w , num_feature , 'double');
fwrite(file_w , feature_mean , 'double');
fwrite(file_w , feature_diff , 'double');
fwrite(file_w , feature_span , 'double');
fwrite(file_w , search_order , 'double');
fclose(file_w);

⌨️ 快捷键说明

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