フィルターのクリア

how can i split an image into 25 blocks using for loop?

3 ビュー (過去 30 日間)
eman
eman 2015 年 1 月 5 日
編集済み: Mohammad Abouali 2015 年 1 月 6 日
i have a lot of images i need to split each image into blocks then i have to convert each block into one vector (now i have 25 vectors) i need to concatenate these vectors in one row vector finally i want to obtain an array each row in this array is a large vector(25 concatenated vectors) of one image how can i do this thanks in advance

採用された回答

Mohammad Abouali
Mohammad Abouali 2015 年 1 月 5 日
編集済み: Mohammad Abouali 2015 年 1 月 5 日
B = im2col(your_image,[m n],'distinct');
B=B(:)';
m and n are the image block sizes.
B at the end is one row vector with your image blocks in it.
  8 件のコメント
Image Analyst
Image Analyst 2015 年 1 月 6 日
allvectors = [];
Mohammad Abouali
Mohammad Abouali 2015 年 1 月 6 日
編集済み: Mohammad Abouali 2015 年 1 月 6 日
As image analyst mentioned before entering the loop initialize all vectors to an empty variable. Something like this:
allvectors=[];
some code here
for i=1:n
some more code
vector= ....
allvectors = [allvectors, vector];
end

サインインしてコメントする。

その他の回答 (2 件)

Image Analyst
Image Analyst 2015 年 1 月 5 日
See the FAQ: http://matlab.wikia.com/wiki/FAQ#How_do_I_split_an_image_into_non-overlapping_blocks.3F For each block, you can turn it from a 2D subimage into a 1D vector with
vector1d = image2d(:);

Matt J
Matt J 2015 年 1 月 5 日
Using MAT2TILES ( Download ),
blocks=mat2tiles(YourImage,25,25);

Community Treasure Hunt

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

Start Hunting!

Translated by