How can I concatenate a uint8 array in a for loop to form an image?
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
%%Grayscale Baboon Image
I2 = imread('baboon.png');
%Splitting image into a cell array
chunk_size2 = [16 16]; % your desired size of the chunks image is broken into
sc2 = sz2 ./ chunk_size2; % number of chunks in each dimension; must be integer
% split to chunk_size(1) by chunk_size(2) chunks
X2 = mat2cell(I2, chunk_size2(1) * ones(sc2(1),1), chunk_size2(2) *ones(sc2(2),1));
[r, c] = size(X2);
%Extracting LBP features for each cell and concatinating them into a
%histogram
result = [];
for row = 1 : r
for col = 1 : c
Z = cell2mat(X2(row, col));
[row_cell, col_cell] = size(Z);
for rows = 2 : row_cell - 1
for cols = 2 : col_cell - 1
centerPixel = Z(rows,cols);
pixel7= Z(rows-1, cols-1) > centerPixel;
pixel6= Z(rows-1, cols) > centerPixel;
pixel5= Z(rows-1, cols+1) > centerPixel;
pixel4= Z(rows, cols+1) > centerPixel;
pixel3= Z(rows+1, cols+1) > centerPixel;
pixel2= Z(rows+1, cols) > centerPixel;
pixel1= Z(rows+1, cols-1) > centerPixel;
pixel0= Z(rows, cols-1) > centerPixel;
eightBitNumber = uint8(...
pixel7 * 2^7 + pixel6 * 2^6 + ...
pixel5 * 2^5 + pixel4 * 2^4 + ...
pixel3 * 2^3 + pixel2 * 2^2 + ...
pixel1 * 2 + pixel0);
localBinaryPatternImage(rows, cols) = eightBitNumber;
result = [result localBinaryPatternImage(rows,cols)];
end
end
end
end
localBinaryPatternImage results in a 15x15 unit8 image that represents the lbp features of the last cell in the cell array X2. The for loop is only giving the last 15x15 uint8 array of the last cell in the cell array X2. How can I concatenate all the localBinaryPatternImage 15x15 unit arrays of each cell to form the entire image?
0 Kommentare
Antworten (1)
Image Analyst
am 21 Apr. 2017
Just use the original image, I2. Don't even bother with using X2 or Z - there's no point.
2 Kommentare
Image Analyst
am 22 Apr. 2017
You can make a 3-D array using cat(3,...)
if row == 1 && col == 1
localBinaryPatternImage3D = localBinaryPatternImage;
else
localBinaryPatternImage3D = cat(3, localBinaryPatternImage3D, localBinaryPatternImage);
end
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!