how to rotate image using function notation
6 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
How do I write Matlab code using functions to make a rotation on an image? THis is all I've got so far, and I'm probably way off...
I = 'cameraman.jpg';
fa = 45;
f1 = @(xy) xy(:,1) .* cosd(fa) + xy(:,2) .* sind(fa);
f2 = @(xy) -xy(:,1) .* sind(fa) + xy(:,2) .* cosd(fa);
ifcn1 = @(xy) f1(xy);
tform1 = geometricTransform2d(ifcn1);
Rin = imref2d(size(I),[-1 1],[-1 1]);
Rout = imref2d(size(I),[-1 1],[-1 1]);
rho1a = imwarp(I,Rin,tform1,'OutputView',Rout,FillValues=0);
0 commentaires
Réponse acceptée
Chris
le 7 Fév 2023
If you're using imwarp, you might as well use imrotate, no? You'd be using the function imrotate() to rotate an image, if that's really your goal.
fa = 45;
I = imread('cameraman.tif');
imrot = imrotate(I,fa);
imshow(imrot)
If you want an anonymous function, like you're using...
rotateImage = @(im, ang) imrotate(im, ang);
imrot = rotateImage(I, fa);
imshow(imrot)
You could also make a standalone function, in a file of the same name or at the bottom of a script, that accepts inputs and outputs the rotated image, and does whatever else you want with the input.
imrot = rotImFun(I, fa);
imshow(imrot);
function out = rotImFun(im, ang)
out = imrotate(im, ang);
end
3 commentaires
Chris
le 7 Fév 2023
I'm unaware of a method that doesn't require a complex series of operations, which a single anonymous function isn't really suited for. That doesn't mean it doesn't exist--it just means I don't have an answer.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Denoising and Compression dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!