how to reduce feature length of local binary pattern for content based image retrieval?

3 views (last 30 days)
i need matlab code for this please

Answers (1)

Akanksha
Akanksha on 2 Mar 2025
To reduce the feature length of Local Binary Pattern (LBP) for content-based image retrieval, you can use uniform patterns. Here's a simple implementation:
function lbp_features = uniform_lbp(image, radius, neighbors)
% Convert image to grayscale if it's not already
if size(image, 3) == 3
image = rgb2gray(image);
end
image = double(image);
% Initialize output
lbp = zeros(size(image));
% Calculate weights
weights = 2.^(0:neighbors-1);
% Generate circular neighbor coordinates
[y, x] = meshgrid(-radius:radius, -radius:radius);
angle = atan2(y, x);
r = sqrt(x.^2 + y.^2);
circle_mask = (r <= radius+0.5) & (r >= radius-0.5);
angles = linspace(0, 2*pi, neighbors+1);
angles = angles(1:end-1);
% Compute LBP
for i = 1:neighbors
y_offset = round(-radius * sin(angles(i)));
x_offset = round(radius * cos(angles(i)));
neighbor = circshift(image, [y_offset, x_offset]);
lbp = lbp + (neighbor > image) .* weights(i);
end
% Uniform pattern mapping
uniform_map = zeros(256, 1);
uniform_patterns = 0;
for i = 0:255
pattern = bitget(i, 1:8);
transitions = sum(abs(diff([pattern(8), pattern, pattern(1)])));
if transitions <= 2
uniform_map(i+1) = uniform_patterns;
uniform_patterns = uniform_patterns + 1;
else
uniform_map(i+1) = neighbors + 1;
end
end
% Apply uniform mapping
lbp = uniform_map(lbp + 1);
% Compute histogram
lbp_features = histcounts(lbp, 0:(neighbors+2));
% Normalize histogram
lbp_features = lbp_features / sum(lbp_features);
end
To use the above function use the following code :
% Load an image (replace with your image filename)
image = imread('input_image.jpg');
% Extract LBP features
radius = 1;
neighbors = 8;
lbp_features = uniform_lbp(image, radius, neighbors);
% Display the features
figure;
bar(lbp_features);
xlabel('LBP Uniform Pattern');
ylabel('Normalized Frequency');
title('Uniform LBP Histogram');
Following is the output generated when the functions are invoked with different inputs.
Please refer to the following related documentation that to help you further :
Hope this helps. Thanks.

Categories

Find more on File Operations in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!