ekaiomen Δημοσ. 21 Φεβρουαρίου 2011 Δημοσ. 21 Φεβρουαρίου 2011 Καλησπέρα, Θα ήθελα μια βοήθεια στο εξής : Έχω τον βασικό πίνακα κβάντισης Q του jpeg που είναι 8X8 και θέλω μέσω interpolation να φτιάξω εναν 16Χ16 και μέσω subsampling εναν 4Χ4 ετσι ώστε να διατηρούν το μοντέλο του 8Χ8 πίνακα. Βρήκα την συνάρτηση interp2 στο matlab αλλά κολλάω στο πως να την δουλέψω.... καμιά βοήθεια ;;;
marios_geo Δημοσ. 22 Φεβρουαρίου 2011 Δημοσ. 22 Φεβρουαρίου 2011 Αν θεωρήσουμε αυτές τις συντεταγμένες : Έχεις ορίσεις τα X και Υ ανα 1 pixel. % original mesh x1=[1:1:8]; y1=[1:1:8]; [XI1,YI1]=meshgrid(x1,y1); %plot results subplot(1,3,1) contourf(XI,YI,Q); title('8x8'); % interpolate on 4X4 x2=[1:2:8]; y2=[1:2:8]; [XI2,YI2]=meshgrid(x2,y2); Q2=interp2(XI1,YI1,Q,XI2,YI2); subplot(1,3,2) contourf(XI2,YI2,Q2); title('4x4'); % interpolate on 16X16 x3=[1:0.5:8]; y3=[1:0.5:8]; [XI3,YI3]=meshgrid(x3,y3); Q3=interp2(XI1,YI1,Q,XI3,YI3); subplot(1,3,3) contourf(XI3,YI3,Q3); title('16x16');
ekaiomen Δημοσ. 22 Φεβρουαρίου 2011 Μέλος Δημοσ. 22 Φεβρουαρίου 2011 Ευχαριστώ...... Σχεδόν δουλεύει... Το μόνο που θέλει είναι οτι ο Q3 ειναι 15χ15 και οχι 16Χ16 , λογικά αν κανω το βήμα 0,45 απο 0,5 θα είναι οκ.... Thanks a lot..
marios_geo Δημοσ. 22 Φεβρουαρίου 2011 Δημοσ. 22 Φεβρουαρίου 2011 Έχεις δίκιο, δεν το πρόσεξα. Το βήμα πρέπει να είναι (8-1)/15 x3=[1:(8-1)/15:8]; y3=[1:(8-1)/15:8]; Μπορείς να δοκιμάσεις την linspace Αυτή η εντολή χωρίζει την απόσταση 1 εώς 8, σε 16 τμήματα. x3=linspace(1,8,16); y3=linspace(1,8,16); Αντίστοιχα διόρθωσε και τα x2,y2
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.