MB-LBP特征-matlab

将图像分成一个个小块(Block),每个小块再分为一个个的小区域(类似于HOG中的cell),小区域内的灰度平均值作为当前小区域的灰度值,与周围小区域灰度进行比较形成LBP特征,生成的特征称为MB-LBP,Block大小为3*3,则小区域的大小为1,就是原始的LBP特征
MB-LBP特征-matlab_第1张图片


matlab源码

function imglbp = getMultiScaleBlockLBPFeature(img, scale)
    imgSize = size(img);
    if numel(imgSize) > 2
        imgG = rgb2gray(img);
    else
        imgG = img;
    end
    [rows, cols] = size(imgG);
    rows=int16(rows);
    cols=int16(cols);

    cellSize = floor(scale / 3);
    offset = floor(cellSize / 2);
    im = uint8(zeros(rows-2*offset, cols-2*offset));

    for i=offset:(rows-offset-1)
        for j=offset:(cols-offset-1)
            temp = 0;
            for m=-offset:offset
                for n=-offset:offset
                    temp = temp + int16(imgG(i+n+1,j+m+1));
                end
            end
            temp = floor(temp / (cellSize * cellSize));

            temp = uint8(temp);
            im(i - offset + 1, j - offset + 1) = temp;
        end
    end
    %imshow(im)
    imglbp = getOriginLBPFeature(im);
end

效果图

原图
MB-LBP特征-matlab_第2张图片
scale = 9
MB-LBP特征-matlab_第3张图片
MB-LBP特征-matlab_第4张图片

你可能感兴趣的:(人脸识别)