• 大小: 18KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-13
  • 语言: 其他
  • 标签: svm  image  segmentation  

资源简介

一个简单的利用灰度信息做分割的svm代码,自己在研究生学习中琢磨出来的

资源截图

代码片段和文件信息

function [ alpha1alpha1_indexsuccess ] = determine_alpha1( Ymat_kernelalphanot_alpha1_indexbClittleValue )
%UNtitleD1 Summary of this function goes here
%  Detailed explanation goes here
success = 0;
sup_index = find(alpha>littleValue & alphalength_not = length(not_alpha1_index); % 不合格alpha1
if length_not~=0 
    for i = 1:length_not
        sup_index(sup_index==not_alpha1_index(i)) = []; %和不合格alpha1位置重合,则排空
    end
end

if ~isempty(sup_index) % sup_index不为空即alpha有处于0~C之间的元素
    sub_value = abs((Y(sup_index1).*(mat_kernel(sup_index:)*(alpha.*Y)+b))-1);
    [max_subsub_index] = max(sub_value);%  返回abs[(Y.*mat_kernel.a.Y+b)-1]最大值及位置
    if max_sub > littleValue %temp不为0破坏了KKT
         alpha1_index = sup_index(sub_index); %返回对最优分类线破坏最强(最远)的位置
         alpha1 = alpha(alpha1_index); %重置alpha1
    else % temp=0=max_sub满足KKT
        zero_index = find(alpha >= 0 & alpha <= littleValue); % 又找alpha=0的元素位置
        if length_not~=0
            for i = 1:length_not
                zero_index(zero_index==not_alpha1_index(i)) = [];
            end
        end
        zero_value = Y(zero_index1).*(mat_kernel(zero_index:)*(alpha.*Y)+b);
        zero_value_index = find(zero_value < 1+littleValue); % 此时破坏KKT的位置
        if ~isempty(zero_value_index) 
            alpha1_index = zero_index(zero_value_index(11));% 不满足就重置alpha1
            alpha1 = alpha(alpha1_index);
        else % 又满足KKT
            C_index = find(alpha >= C-littleValue & alpha <= C); %再找alpha=C的元素位置
            if length_not~=0
                for i = 1:length_not
                    C_index(C_index==not_alpha1_index(i)) = [];
                end
            end
            C_value = Y(C_index1).*(mat_kernel(C_index:)*(alpha.*Y)+b);
            C_value_index = find(C_value > 1-littleValue); %此时,破坏KKT就是代入决策式却>1
            if ~isempty(C_value_index)
                alpha1_index = C_index(C_value_index(11));% 不满足就重置alpha1
                alpha1 = alpha(alpha1_index);
            else % 还满足KKT
                success = 1; % 寻找最优alpha 成功
                alpha1_index=[];
                alpha1=[]; % 清空alpha1的辅助变量
            end
        end
    end
else % alpha不在0~C之间 
    zero_index = find(alpha >= 0 & alpha <= littleValue); % 找alpha=0
    if length_not~=0 
        for i = 1:length_not
            zero_index(zero_index==not_alpha1_index(i)) = []; % 排空位置随执行次数递增(-i)
        end
    end
    zero_value = Y(zero_index1).*(mat_kernel(zero_index:)*(alpha.*Y)+b);
    zero_value_index = find(zero_value <1-littleValue); % 此时破坏KKT的位置
   if ~isempty(zero_value_index) % 有破坏点
        alpha1_index = zero_index(zero_value_index(11)); %alpha1重置,index = 1/2/3
        alpha1 = alpha(alpha1_index); %  前三次,均重置为0(alpha=000000)
   else % 没有破坏点
    C_index = find(alpha >= C-littleValue & alpha <= C); % 找 alpha=C
     if ~isempty(C_index)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
       if length_not~=0
         for i = 1:length_not
           C_index(C_in

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       3493  2008-08-26 16:40  kmeans后的图像分割\determine_alpha2.m

     文件       1073  2005-07-26 16:24  kmeans后的图像分割\Kernel.m

     文件       1500  2009-02-17 17:32  kmeans后的图像分割\kmeans.m

     文件       1990  2009-04-22 10:03  kmeans后的图像分割\seg_lab_090421.m

     文件        955  2009-04-21 15:48  kmeans后的图像分割\free_sample_090421.m

     文件       3245  2009-04-21 10:48  kmeans后的图像分割\seglab_SMO_algorithm_090421.m

     文件       5272  2008-09-19 16:22  kmeans后的图像分割\determine_alpha1amended.m

     文件        385  2009-04-21 16:05  kmeans后的图像分割\classtrain.mat

     文件       7330  2009-04-21 11:58  kmeans后的图像分割\free sample.fig

     文件       1917  2009-04-21 13:23  kmeans后的图像分割\seg_lab_090421.asv

     文件        808  2009-04-21 14:33  kmeans后的图像分割\free_sample_090421.asv

     文件        384  2009-04-21 16:21  kmeans后的图像分割\classtrain_car_4.mat

     文件        339  2009-04-21 16:23  kmeans后的图像分割\classtrain_figure_1.mat

     文件        338  2009-04-21 16:25  kmeans后的图像分割\classtrain_object_2.mat

     文件        345  2009-04-22 10:04  kmeans后的图像分割\readme.txt

     目录          0  2009-04-21 11:02  kmeans后的图像分割

----------- ---------  ---------- -----  ----

                29374                    16


评论

共有 条评论