Effacer les filtres
Effacer les filtres

Shift Values in Array of ones and zeros

1 vue (au cours des 30 derniers jours)
Mike Rovan
Mike Rovan le 30 Sep 2019
I have a 512x512x100 array of ones and zeros. How do i shift the ones in by a certain integer factor in any direction (up,down,right,left) in all 100 images
the code will have to find all the ones in the 512x512x100 array and shift them in that direction without changing the array size. so the ones will be shifted to take over another zero's place and not shift the zeros with it to create a larger/smaller array. Can you please use code that will work for 3D arrays
example:
shift up
0 0 0 0 0
0 0 0 1 0
0 1 1 1 0
0 0 1 0 0
0 0 0 0 0
becomes:
0 0 0 1 0
0 1 1 1 0
0 0 1 0 0
0 0 0 0 0
0 0 0 0 0
And my images don't have any ones in the outermost border of the 512x512 images so that shouldn't be a problem trying to shift a one on the corners

Réponses (1)

Matthias Walle
Matthias Walle le 30 Sep 2019
Modifié(e) : Matthias Walle le 30 Sep 2019
If you have Image Processing Toolbox this would be the easiest in my opinion
A=[0 0 0 0 0;
0 0 0 1 0;
0 1 1 1 0;
0 0 1 0 0;
0 0 0 0 0];
A_new=imtranslate(A,[0, -1],'OutputView','same');
Or you look at affine transformation in the documentation

Community Treasure Hunt

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

Start Hunting!

Translated by