Matlab代码提取图像的原始LBP特征,圆形LBP特征,旋转不变LBP特征和旋转不变均匀LBP特征并各自显示图像
时间: 2023-11-12 09:05:34 浏览: 162
好的,以下是Matlab代码实现:
```matlab
% 读取图像
img = imread('example.jpg');
% 灰度化
if size(img, 3) == 3
img = rgb2gray(img);
end
% 提取原始LBP特征
lbp_raw = extractLBPFeatures(img, 'Radius', 1, 'NumNeighbors', 8);
% 提取圆形LBP特征
lbp_circular = extractLBPFeatures(img, 'Radius', 1, 'NumNeighbors', 8, 'Upright', false);
% 提取旋转不变LBP特征
lbp_rotation = extractLBPFeatures(img, 'Radius', 1, 'NumNeighbors', 8, 'Upright', false, 'Interpolation', 'Nearest');
% 提取旋转不变均匀LBP特征
mapping = getmapping(8, 'u2');
lbp_uniform = extractLBPFeatures(img, 'Radius', 1, 'NumNeighbors', 8, 'Upright', false, 'Mapping', mapping);
% 显示图像和各自的LBP特征
subplot(2, 3, 1), imshow(img), title('原始图像');
subplot(2, 3, 2), bar(lbp_raw), title('原始LBP特征');
subplot(2, 3, 3), bar(lbp_circular), title('圆形LBP特征');
subplot(2, 3, 4), bar(lbp_rotation), title('旋转不变LBP特征');
subplot(2, 3, 5), bar(lbp_uniform), title('旋转不变均匀LBP特征');
```
这段代码会读取名为`example.jpg`的图像,然后分别提取原始LBP特征、圆形LBP特征、旋转不变LBP特征和旋转不变均匀LBP特征,并将它们的条形图显示出来。其中,`getmapping(8, 'u2')`用于生成旋转不变均匀LBP特征的映射表。
阅读全文