How to access the image's blocks in an iterative way

Hi
i have a database of 100 images of size 256X384 RGB images.
i divided each image into 6 equal blocks.
now i want to make this in a big nested loop with keeping record of every image and blocks.
i thought to make a big 2D array of size(100 , 6*128 , 128) but i have a problem to access the first layer of each block
i tried this code :
for i=1:6
hblock(k,i*128,128)=iblock(k,i*128,128)(:,:,1);
end
but i got this error:
()-indexing must appear last in an index expression.
i tried using cell arrays but the results wasn't as accurate as numeric arrays.
any help will be appreciated Thank you

Risposte (1)

You can't have two indexing things with an array, like array()(). You can have only one set of parentheses. I'm not sure what you're after. Do you want to store the kth slice, or the first slice in your new 3D array?

5 Commenti

the K is the image's number and the two other indices are for the blocks
i want to get the first layer from the RGB to the hblock of the same indices
Do "size(iblock)" - what does it report in the command window?
Do you have this "database of 100 images of size 256X384 RGB images" already in an array or cell array? Or do you still need to read in those images from a database (Oracle, Access???) or a folder?
i read from a folder containing images
Answer my question on using size(). What is iblock? How did you create that array?

Accedi per commentare.

Richiesto:

il 31 Dic 2011

Community Treasure Hunt

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

Start Hunting!

Translated by