How can I concatenate a uint8 array in a for loop to form an image?
조회 수: 2 (최근 30일)
이전 댓글 표시
%%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
답변 (1개)
Image Analyst
2017년 4월 21일
Just use the original image, I2. Don't even bother with using X2 or Z - there's no point.
댓글 수: 2
Image Analyst
2017년 4월 22일
You can make a 3-D array using cat(3,...)
if row == 1 && col == 1
localBinaryPatternImage3D = localBinaryPatternImage;
else
localBinaryPatternImage3D = cat(3, localBinaryPatternImage3D, localBinaryPatternImage);
end
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!