Shift Values in Array of ones and zeros
1 回表示 (過去 30 日間)
古いコメントを表示
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
0 件のコメント
回答 (1 件)
Matthias Walle
2019 年 9 月 30 日
編集済み: Matthias Walle
2019 年 9 月 30 日
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
0 件のコメント
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!