2012-02-15 13 views
5

यह मेरा मूल छवि है:MATLAB में मेरी छवि ठीक से क्यों लोड नहीं होती है?

enter image description here

लेकिन जब मैंने उसे MATLAB पर लोड और उस पर) imshow का उपयोग करें (, यह कैसे मैं इसे देखना है:

enter image description here

यह मैं जिस कोड का उपयोग कर रहा हूं वह है:

I=imread('D:\Matty\pout.gif') 
imshow(I) 
+0

यह अजीब बात है .... शायद 'imshow (im2double (I))' का प्रयास करें, या इसे '.jpg' लोड करने से पहले छवि को दूसरे प्रारूप में बदलने की कोशिश करें, ... matlab से छवि को सहेजने का प्रयास करें ' imwrite' (किसी अन्य नाम के साथ), और देखें कि यह संशोधित है या नहीं। – Oli

+0

@ ओली छवि को कनवर्ट करना इसे हल करना प्रतीत होता था। और लुकास ने इस मुद्दे को इंगित किया। उत्तर के लिए धन्यवाद। मैंने आपके जवाब को स्वीकार करने के बजाय उत्तर दिया होगा। – GrowinMan

उत्तर

3

GIF प्रारूप अनुक्रमित है, और प्रत्येक छवि का अपना रंग मैप हो सकता है। तो आपको छवि के साथ रंगमंच को एक साथ पढ़ने की जरूरत है:

[I, Imap] = imread('D:\Matty\pout.gif'); 
imshow(I,Imap) 

मैंने इसे आपकी छवि पर परीक्षण किया है और यह बहुत अच्छी तरह से काम करता है। मुझे समझ में नहीं आता कि लूकास ने उनके जवाब में क्या समस्या थी।

+0

मुझे यकीन नहीं है, लेकिन मेरे पास इस समय उपलब्ध मैटलैब (6.1) का एक पुराना संस्करण भी है। – Lucas

5

जो मैंने पहले कहा था उसे भूल जाओ। इसे colormap के साथ करना है। छवि में एक फंकी colormap लगता है। आम तौर पर आपको [X, map] = imread(...) के साथ कोलोराप पढ़ने में सक्षम होना चाहिए, लेकिन डेटा के कुछ क्लिपिंग हैं जिन्हें मैं पूरी तरह से समझ नहीं पा रहा हूं।

मैं स्वयं एक hexeditor से कच्चे डेटा से बाहर रंग मैप की नकल की और gif_colormap.txt

बी 1 बी 1 बी 1 वायुसेना वायुसेना वायुसेना एबी एबी एबी ए 9 ए 9 ए 9 ए 7 ए 7 ए 7 ए 3 ए 3 ए 3 ए 1 ए 1 ए 1 9 फ के रूप में यह बचाया 9 एफ 9 एफ 9 डी 9 डी 9 डी 9 बी 9 बी 9 बी 99 99 99 97 97 9 7 95 95 95 9 3 9 93 9 91 91 91 8 एफ 8 एफ 8 एफ 8 बी 8 बी 8 बी 89 89 89 85 85 85 83 83 83 83 7 एफ 7 एफ 7 एफ 7 डी 7 डी 7 डी 7 बी 7 बी 7 बी 79 79 79 77 77 77 75 75 75 71 71 71 6 डी 6 डी 6 डी 6 बी 6 बी 6 बी 69 69 69 67 67 67 65 65 65 63 63 63 61 61 61 5 एफ 5 एफ 5 एफ 5 डी 5 डी 5 डी 5 बी 5 बी 5 बी 59 59 59 57 57 57 53 53 53 4 डी 4 डी 4 डी 4 बी 4 बी 4 बी ई0 ई0 ई0 डीसी डीसी डीसी डीए डीए डीए डी 6 डी 6 डी 6 D4 D4 D4 डी 2 डी 2 डी 2 D0 D0 D0 सीई सीई सीई सीसी सीसी सीसी सीए सीए सीए सी 8 सी 8 सी 8 सी 4 सी 4 सी 4 सी 2 सी 2 सी 2 C0 C0 C0 बीई किया जा बीए बीए बीए B8 B8 B8 बी -6 बी -6 बी -6 बी 4 बी 4 बी 4 बी 2 बी 2 बी 2 बी 0 बी 0 बी 0 एई एई एई एसी एसी एए एए एए ए 6 ए 6 ए 6 ए 4 ए 4 ए 4 ए 2 ए 2 ए 2 ए0 ए0 ए0 9ई 9ई 9ई 9 सी 9 सी 9 सी 9 ए 9 ए 9 ए 96 9 96 9 4 9 94 9 4 9 92 92 9 0 90 90 8 ई 8 ई 8 ई 8 ए 8 ए 8 ए 88 88 88 86 86 86 84 84 84 82 82 82 80 80 80 7 ई 7 ई 7 ई 7 ए 7 ए 7 ए 78 78 78 74 74 74 72 72 72 70 70 70 6 ई 6 ई 6 ई 6 सी 6 सी 6 सी 6 ए 6 ए 6 ए 66 66 66 62 62 62 5E 5E 5E 56 56 56 54 54 54 52 52 52 50 50 50 4E 4E 4E 4A 4A 4A डीएफ डीएफ डीएफ डीडी डीडी डीडी डीबी डीबी डीबी डी 7 डी 7 डी 7 डी 5 डी 5 डी 3 डी 12 डी 3 डी 3 डी 1 डी 1 डी 1 सीएफ सीएफ सीएफ सीडी सीडी सीडी सी 9 सी 9 सी 9 सी 7 सी 7 सी 7 सी 5 सी 5 सी 5 सी 3 सी 3 सी 3 सी 1 सी 1 सी 1 बीडी बीडी बीडी बीबी बीबी बीबी बी 9 बी 9 बी 9 बी 5 बी 5 बी 5 बी 3 बी 3 बी 3

तो मैं नया रंग मैप में पढ़ सकते हैं और यह मैन्युअल रूप से सेट

fid = fopen('gif_colormap.txt', 'r') 
A = fscanf(fid, '%x '); 
fclose(fid); 
my_map = reshape(A,3,121)' 

im = imread('pout.gif'); 

%colormap has to be between 0 and 1 
my_map = (my_map-min(my_map(:)))/max(my_map(:)); 

imshow(im,[]) 

%set colormap manually 
colormap(my_map); 

result image of pouting girl

+0

स्पॉट ऑन।धन्यवाद बहुत अच्छा सर लुकास, यह जानकारी का अच्छा टुकड़ा था :) – GrowinMan

संबंधित मुद्दे