MATLAB

2010-10-24 15 views
20

में रंगीन छवि को फ़्लिप करें और घुमाएं MATLAB में मैं रंगीन छवि (आरजीबी) कैसे फ्लिप करूं? fliplr रंग सामग्री खोने के बिना काम नहीं करता है, क्योंकि यह केवल 2 डी से संबंधित है।MATLAB

साथ ही, imrotate रंग छवियों बारी बारी से नहीं हो सकता है।

+1

मुझे 'imrotate' (R2013a) के साथ रंगीन छवियों को घूर्णन करने में कोई समस्या नहीं है। –

+0

'fliplr (img)' 'flip (img, 2)' के बराबर है। और यह न केवल 2 डी सरणी के साथ सौदा करता है। बहुआयामी सरणी के लिए, 'fliplr' पहले और दूसरे आयामों द्वारा बनाए गए विमानों पर संचालित होता है। – Temak

उत्तर

21

समारोह flipdim एन डी मैट्रिक्स के लिए काम करेंगे, जबकि कार्यों flipud और fliplr केवल 2-डी मैट्रिक्स के लिए काम करते हैं:

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 

नोट: MATLAB के नवीनतम संस्करणों में (R2013b और नए), flip फ़ंक्शन flipdim के बजाय अब अनुशंसित है।

+0

कृपया, 'flipdim() '' flipdim() 'से प्रतिस्थापित करें, क्योंकि विभिन्न कारणों से पूर्व की अनुशंसा नहीं की जाती है। –

20

एक उदाहरण:

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) 

alt text

+0

मुझे यह भी बेहतर पसंद है। – Jonas

+0

हाँ :) अन्य लोगों के अलावा पहले ही दिखाया गया था कि 'फ्लिपडिम' और इसका नया प्रतिस्थापन 'फ्लिप' का उपयोग कैसे करें। – Amro

+0

@ एमोरो एक एकीकृत दृष्टिकोण में 'imagesc' + axes' को फ़्लिप करने के बारे में यहां नया धागा http://stackoverflow.com/q/39923300/54964 - - मुझे विश्वास नहीं है कि आपका दृष्टिकोण 'अक्ष' बनाए रख सकता है। –

2

imrotate घूमता रंग छवियों बी = IMROTATE (ए, कोण) छवि एक ANGLE डिग्री से इसके केंद्र बिंदु के आसपास एक वामावर्त दिशा में घूमती है।

0

मैं इसे देर हो चुकी है पता है, लेकिन जब से flipdim अब मूल्यह्रास हुआ है, अन्य उत्तर अब मान्य नहीं हैं। आप flip इस्तेमाल कर सकते हैं, या अन्य, स्मार्ट तरीके से कार्य करें:

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) 

जैसा कि पहले ही रंग छवियों के साथ के साथ ही ग्रेस्केल साथ कहा, imrotate से संबंधित है।