Làm cách nào để lật hình ảnh màu (RGB) trong MATLAB? Các fliplr
dường như không hoạt động mà không làm mất nội dung màu, vì nó chỉ đề cập đến 2D.lật và xoay hình ảnh màu trong MATLAB
Đồng thời, imrotate
không được xoay hình ảnh màu.
Làm cách nào để lật hình ảnh màu (RGB) trong MATLAB? Các fliplr
dường như không hoạt động mà không làm mất nội dung màu, vì nó chỉ đề cập đến 2D.lật và xoay hình ảnh màu trong MATLAB
Đồng thời, imrotate
không được xoay hình ảnh màu.
Chức năng flipdim
sẽ làm việc cho ma trận ND, trong khi chức năng flipud
và fliplr
chỉ làm việc cho ma trận 2-D:
img = imread('peppers.png'); %# Load a sample image
imgMirror = flipdim(img,2); %# Flips the columns, making a mirror image
imgUpsideDown = flipdim(img,1); %# Flips the rows, making an upside-down image
LƯU Ý: Trong các phiên bản mới hơn của MATLAB (R2013b và mới hơn)), chức năng flip
hiện được đề xuất thay vì flipdim
.
Hãy thay thế 'flipdim()' bằng 'flip()', vì từ trước không được khuyến cáo vì nhiều lý do khác nhau. –
Một ví dụ:
I = imread('onion.png');
I2 = I(:,end:-1:1,:); %# horizontal flip
I3 = I(end:-1:1,:,:); %# vertical flip
I4 = I(end:-1:1,end:-1:1,:); %# horizontal+vertical flip
subplot(2,2,1), imshow(I)
subplot(2,2,2), imshow(I2)
subplot(2,2,3), imshow(I3)
subplot(2,2,4), imshow(I4)
Tôi cũng thích nó theo cách này. – Jonas
yep :) Bên cạnh những người khác đã cho thấy làm thế nào để sử dụng 'flipdim' và thay thế mới của nó 'lật'. – Amro
@Amro Chủ đề mới ở đây về việc lật 'imagesc' +' trục' trong cách tiếp cận tích hợp http://stackoverflow.com/q/39923300/54964 - - Tôi không tự tin rằng cách tiếp cận của bạn có thể duy trì 'trục'. –
imrotate
xoay hình ảnh màu B = IMROTATE (A, ANGLE) xoay hình ảnh A theo độ ANGLE theo hướng ngược chiều kim đồng hồ xung quanh điểm trung tâm của nó.
Tôi biết đã muộn, nhưng kể từ khi Flipdim hiện được khấu hao, các câu trả lời khác không còn giá trị nữa. Bạn có thể sử dụng flip, hoặc làm điều đó trong khác, cách thông minh:
I = imread('onion.png');
% flip left-right, or up-down:
Iflipud = flip(I, 1)
Ifliplr = flip(I, 2)
% or:
Iflipud = I(size(I,1):-1:1,:,:);
Ifliplr = I(:,size(I,1):-1:1,:);
% flip both left-right, and up-down, stupid way:
Iflipboth = I(size(I,1):-1:1,size(I,1):-1:1,:);
% flip both left-right, and up-down, smart way:):
Iflipboth = imrotate(I, 180)
Như đã chỉ, giao dịch imrotate với màu sắc hình ảnh cũng như với tông màu xám.
Tôi không gặp sự cố khi xoay hình ảnh màu với 'imrotate' (R2013a). –
'fliplr (img)' tương đương với 'lật (img, 2)'. Và nó không chỉ đối phó với các mảng 2D. Đối với các mảng đa chiều, 'fliplr' hoạt động trên các mặt phẳng được hình thành bởi các chiều thứ nhất và thứ hai. – Temak