Filter löschen
Filter löschen

If there is a 512*512 image which has to be sampled into 16*16 image patches?how

4 Ansichten (letzte 30 Tage)
If there is a 512*512 image which has to be sampled into 16*16 image patches,how can I do that?
  3 Kommentare
hamed abdulaziz
hamed abdulaziz am 31 Dez. 2013
Bearbeitet: hamed abdulaziz am 31 Dez. 2013
Sorry,I did not see your previous answer on my question ,I tried this :
I = imread('d:\3.bmp');
I=imresize(I,[512 512]);
patch_cell = mat2cell( 8*ones(1,size(I,1)/8), 8*ones(1,size(I,2)/8), size(I,3) );
but I have this error
Error using mat2cell (line 107) Input arguments, D1 through D2, must sum to each dimension of the input matrix size, [1 64].'
Error in patchs (line 6) patch_cell = mat2cell( 8*ones(1,size(I,1)/8), 8*ones(1,size(I,2)/8), size(I,3) );

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Matt J
Matt J am 1 Jan. 2014
Bearbeitet: Matt J am 1 Jan. 2014
Using MAT2TILES
patches = mat2tiles(YourImage,[16,16]);
  4 Kommentare
Image Analyst
Image Analyst am 1 Jan. 2014
The shapes are rectangles. Do you mean you want to see where the rectangles are, say in lines superimposed over the original image where the patches were extracted from? Or do you want to see every patch as a separate sub image like the FAQ does?

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (3)

Image Analyst
Image Analyst am 31 Dez. 2013
Bearbeitet: Image Analyst am 1 Jan. 2014
It does it two different ways. One using mat2cell(), and one using just simple indexing. It's a full blown demo with sample images and display of each sub-image that it extracted so you can see what it did.

Jan
Jan am 31 Dez. 2013
The easiest way would be to let two FOR loops crop the parts from the original array. The details depend on what you want as output.
  1 Kommentar
hamed abdulaziz
hamed abdulaziz am 31 Dez. 2013
Thank you Mr.Jan,I would like to use this code
patch_cell = mat2cell( 8*ones(1,size(I,1)/8), 8*ones(1,size(I,2)/8), size(I,3) );
but I got these error
Error using mat2cell (line 107) Input arguments, D1 through D2, must sum to each dimension of the input matrix size, [1 64].'
Error in patchs (line 6) patch_cell = mat2cell( 8*ones(1,size(I,1)/8), 8*ones(1,size(I,2)/8), size(I,3) );
Please could you guide me to correct it?

Melden Sie sich an, um zu kommentieren.


Walter Roberson
Walter Roberson am 31 Dez. 2013
patch_cell = mat2cell( I, 16*ones(1,size(I,1)/16), 16*ones(1,size(I,2)/16), size(I,3) );

Kategorien

Mehr zu Image Processing Toolbox finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by