【问题标题】:How to extract LBP features from datasets in Matlab?如何从 Matlab 中的数据集中提取 LBP 特征?
【发布时间】:2019-03-24 09:46:18
【问题描述】:

我已经了解了如何从单个图像中提取特征,如下例所述:https://www.mathworks.com/help/vision/ref/extractlbpfeatures.html

现在我正在为我的 matlab 项目处理 1000 张图像的数据集,以提取自行车、汽车和摩托车的特征。我的数据集中有三个单独的文件夹,包括自行车、汽车和摩托车。在执行期间,我收到错误消息,

Error using extractLBPFeatures>parseInputs (line 148)

Expected I to be one of these types:

double, single, int16, uint16, uint8, logical

Instead its type was imageSet.

Error in extractLBPFeatures (line 129)

params = parseInputs(I,varargin{:});

Error in LBP (line 21)

bycycleLBP = extractLBPFeatures(bycycleData,'Upright',false);

我该怎么办?下面是我的示例代码 ==>

imSet = imageSet('dataset\train','recursive');

bicycleData = imSet(1);
carData = imSet(2);
motorbikeData = imSet(3);

%%Extract LBP Features
bicycleLBP = extractLBPFeatures(bicycleData,'Upright',false);
carLBP = extractLBPFeatures(carData,'Upright',false);
motorbikeLBP = extractLBPFeatures(motorbikeData,'Upright',false);

bicycle = bicycleLBP.^2;
car = carLBP.^2;
motorbike = motorbikeLBP.^2;

figure
bar([bicycle; car; motorbike]','grouped');
title('LBP Features Of bicycle, car and motorbike');
xlabel('LBP Histogram Bins');
legend('Bicycle','Car','Motorbike');

请帮助我实现我的示例代码。

【问题讨论】:

    标签: matlab image-processing machine-learning feature-extraction lbph-algorithm


    【解决方案1】:

    在您尝试提取特征之前,让我们先看看两个变量。

    >> whos imSet bicycleData
      Name             Size            Bytes  Class       Attributes            
      imSet            1x3              1494  imageSet 
      bicycleData      1x1               498  imageSet 
    

    变量imSet 是3 个imageSet 对象的列表。第一个代表自行车,因此您正确地将自行车图像集拉入其自己的变量bicycleData,这是一个单数imageSet。到目前为止一切顺利,但是当我们查看 extractLBPFeatures 的文档时...

    features = extractLBPFeatures(I,Name,Value)

    I — 输入图像

    输入图像,指定为真实且非稀疏的 M×N 二维灰度图像。


    此功能一次只能提取一张灰度图像的特征。您必须遍历您的 imageSet 才能一次提取一个特征。

    % Create a cell array to store features per image.
    bicycleFeatures = cell(size(bicycleData.ImageLocation));
    
    for i = 1:length(bicycleFeatures)
        % Read in individual image, and convert to grayscale to extract features.
        image = imread(bicycleData.ImageLocation{i});
        bicycleFeatures{i} = extractLBPFeatures(rgb2gray(image));
    end
    

    请记住,您仍然需要进行后期处理工作。这会提取每张图像的特征,因此您必须确定如何组合每个数据集的特征数据。

    【讨论】:

      猜你喜欢
      • 2015-09-20
      • 1970-01-01
      • 1970-01-01
      • 2021-09-21
      • 2021-08-09
      • 2015-09-25
      • 1970-01-01
      • 1970-01-01
      • 2018-11-18
      相关资源
      最近更新 更多