spliting image to 16x16 blocks
이전 댓글 표시
hi i have an image with size 320x240 i want to split it to 16x16 blocks but i don't use for loop. i don't process these blocks and i only save theme that after 30 frame i do LBP 3d on it? can you help me
답변 (2개)
Jan
2013년 3월 4일
SplitImage = reshape(Image, 16, 20, 16, 15);
SplitImage = permute(SplitImage, [1, 3, 2, 4]);
SplitImage = reshape(SplitImage, [16, 16, 300]);
Walter Roberson
2013년 3월 4일
SplitImage = mat2cell(Image, 16 * ones(1, size(Image,1) / 16), 16 * ones(1, size(Image,2) / 16), size(Image,3));
댓글 수: 3
Matt J
2013년 3월 4일
MAT2CELL does use a for-loop implicitly, though I suspect the OP is excessively concerned about loops.
SplitImage=mat2tiles(Image,[16,16]);
nadia naji
2013년 3월 4일
Matt J
2013년 3월 4일
Glad it does what you want, though if speed was your goal, Jan's method is about 4 times faster.
카테고리
도움말 센터 및 File Exchange에서 LBP - Local Binary Patterns에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!