shifting an image vertically down.
Show older comments
Hi, I want to shift a picture vertically down by 50 pixels here is my code:
X=imread('photo1.jpg');
X_double=double(X);
[m,n]=size(X_double);
E=eye(n);
T=zeros(n,n);
r=50;
T(1:r,:)=E(n-(r-1):n,:);
T(r+1:n,:)=E(1:n-r,:);
X_shift=T*X_double
I'm trying to make a transformation matrix and then multiply the resulting matrix by the image matrix "X". I keep getting an error though:
"Error using , inputs must be 2-D, or at least one input must be scalar. To compute elementwise TIMES, use TIMES (.) instead."
Any help is much appreciated, thanks.
1 Comment
Adam
on 28 Jun 2016
What are you wanting to happen to the bottom 50 pixels and what is supposed to fill the 50 left at the top? I don't see why you are trying to do a multiplicative transform just to shift an image.
Can't you just concatenate the image vertically with 50 rows of zeros?
Accepted Answer
More Answers (1)
Image Analyst
on 29 Jun 2016
0 votes
Why not use imtranslate()???
Categories
Find more on Image Arithmetic in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!