[HELP] Extract double array from cell

조회 수: 1 (최근 30일)
Seprienna
Seprienna 2014년 9월 3일
댓글: Seprienna 2014년 9월 3일
I have an image which has been divided into 49 blocks. from the block I would like to get the feature vector of LBP from each cell. what can i do?
any advise is greatly appreciated.
proceed = 1;
data_matrix = [];
ids = [];
conut = 0;
l=0;
for i=1:100
for j=1:10
s = sprintf('database/s%i/%i.jpg',i,j);
X = double(imread(s));
[rows columns] = size(X);
blockSizeR = 45; % Rows in block.
blockSizeC = 34; % Columns in block.
% Figure out the size of each block in rows.
% Most will be blockSizeR but there may be a remainder amount of less than that.
wholeBlockRows = floor(rows / blockSizeR);
blockVectorR = [blockSizeR * ones(1, wholeBlockRows), rem(rows, blockSizeR)];
% Figure out the size of each block in columns.
wholeBlockCols = floor(columns / blockSizeC);
blockVectorC = [blockSizeC * ones(1, wholeBlockCols), rem(columns, blockSizeC)];
% Dividing the image into 49 Blocks
ca = mat2cell(X, blockVectorR, blockVectorC);
eval(['out_' num2str(l) '=ca' ]);
l=l+1;
MAPPING=getmapping(8,'riu2');
feature_vector = lbp(ca,1,8,MAPPING,'hist');
feat_vect=feature_vector';
data_matrix = [data_matrix,feat_vect];
end
end
  댓글 수: 2
Guillaume
Guillaume 2014년 9월 3일
What is the problem with the code you've written? Doesn't it do what you're asking?
Seprienna
Seprienna 2014년 9월 3일
편집: Seprienna 2014년 9월 3일
it suppose to work, but I couldn't get the new input image to be working. any advise. i'm getting this error'Conversion to double from cell is not possible.

댓글을 달려면 로그인하십시오.

채택된 답변

Guillaume
Guillaume 2014년 9월 3일
I'm assuming that the lbp code you're referring to is from http://www.cse.oulu.fi/CMV/Downloads/LBPMatlab, which would indeed give you the error you mention if you pass it the cell array ca since it is expecting an image.
Possibly, what you want to do is:
feature_vectors = cellfun(@(cell) lbp(cell, 1, 8, MAPPING, 'hist'), ca, 'UniformOutput', false);
which will send each cell in turn to lbp and collate all the returned values in a cell array.
If you want to then stuff these return values in your data_matrix you'll have to change its declaration to:
data_matrix = {}; %cell array instead of matrix
and concatenate it with
data_matrix = [data_matrix {feature_vectors}];
or you could just do
data_matrix{l} = feature_vectors;
  댓글 수: 1
Seprienna
Seprienna 2014년 9월 3일
thank you very much..very helpful information. and yes that the standard lbp code i'm using.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Point Cloud Processing에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by