Εργαλεία Χρήστη

Εργαλεία ιστότοπου


octave

Σύγκριση εκδόσεων

Εδώ βλέπετε τις διαφορές μεταξύ της επιλεγμένης έκδοσης και της τρέχουσας έκδοσης της σελίδας.

Σύνδεσμος σε αυτή την προβολή διαφορών.

Προηγούμενος έλεγχος και από τις δύο πλευρές Προηγούμενη αναθεώρηση
Επόμενη αναθεώρηση
Προηγούμενη αναθεώρηση
octave [2014/02/01 15:56]
chiossif
octave [2021/01/30 13:59]
62.210.151.70 παλαιότερη έκδοση επαναφέρθηκε (2014/01/29 10:01)
Γραμμή 90: Γραμμή 90:
     c =  8 - 1i     c =  8 - 1i
 Για τις συναρτήσεις σε μιγαδικούς αριθμούς δείτε περισσότερα [[http://www.gnu.org/software/octave/doc/interpreter/Complex-Arithmetic.html|εδώ]] Για τις συναρτήσεις σε μιγαδικούς αριθμούς δείτε περισσότερα [[http://www.gnu.org/software/octave/doc/interpreter/Complex-Arithmetic.html|εδώ]]
- 
- 
  
  
Γραμμή 110: Γραμμή 108:
         2    2         2    2
        12   12        12   12
-Υποστηρίζονται οι πράξεις +,-,* ως πολλαπλασιασμός πινάκων, ανάλογα η ύψωση σε δύναμη ^, ο ανάστροφος ' και .* ως βαθμωτός πολλαπλασιασμός, / και ./ αντίστοιχα και \ και .\ ως αριστερή διαίρεση:+Υποστηρίζονται οι πράξεις +,-,* ως πολλαπλασιασμός πινάκων και .* ως βαθμωτός πολλαπλασιασμός, / και ./ αντίστοιχα και \ και .\ ως αριστερή διαίρεση:
     octave:17> F=A.\B     octave:17> F=A.\B
     F =     F =
Γραμμή 180: Γραμμή 178:
        3        3
 για την πρώτη στήλη. για την πρώτη στήλη.
-Τι σημαίνει όμως το [[https://www.gnu.org/software/octave/doc/interpreter/Ranges.html|εύρος τιμών]]; Το εύρος ορίζεται ως αρχή:βήμα:τέλος έτσι:+Τι σημαίνει όμως το [https://www.gnu.org/software/octave/doc/interpreter/Ranges.html|εύρος τιμών]; Το εύρος ορίζεται ως αρχή:βήμα:τέλος έτσι:
     octave:30> 1:3:10     octave:30> 1:3:10
     ans =     ans =
Γραμμή 455: Γραμμή 453:
  
  
 +======Βιβλιοθήκη επεξεργασίας εικόνας======
 +Ναι... υπάρχει και είναι [[http://octave.sourceforge.net/image/ | εδώ]]. Εγκαταστήστε την και ξεκινάμε.
 +Κατ'αρχήν και πάντα παραδοσιακά κατεβάζουμε στον υπολογιστή μας την [[https://upload.wikimedia.org/wikipedia/en/2/24/Lenna.png| Λέννα]]. 
  
- +Με την ευκαιρία [[http://www.lenna.org/full/len_full.html|εδώ]] ολόκληρη η Λέννα για περισσότερες δοκιμές και [[http://www.cs.cmu.edu/~chuck/lennapg/|εδώ]] η ιστορία της ;-)
- +
- +
- +
- +
-======Βιβλιοθήκη επεξεργασίας εικόνας====== +
-Ναι... υπάρχει και είναι [[http://octave.sourceforge.net/image/ | εδώ]]. Εγκαταστήστε την για να μπορείτε να την χρησιμοποιήσετε. +
-Κατ'αρχήν και πάντα παραδοσιακά κατεβάζουμε στον υπολογιστή μας την [[https://upload.wikimedia.org/wikipedia/en/2/24/Lenna.png| Λέννα]]. ( Με την ευκαιρία [[http://www.lenna.org/full/len_hires.html|εδώ]] ολόκληρη η Λέννα για περισσότερες δοκιμές και [[http://www.cs.cmu.edu/~chuck/lennapg/|εδώ]] η ιστορία της ;-)+
  
 Ξεκινάμε... Ξεκινάμε...
- +(to be written curently starring at [[http://www.lenna.org/full/len_full.html| Lenna's portait]] ;-) )
-Στην octave όλες οι εικόνες αναπαριστώνται ως πίνακες ακεραίων ή πραγματικών αριθμών δύο ή τριών διαστάσεων. Εάν η εικόνα μας είναι RGB (ή με άλλα περισσότερα του ενός κανάλια) τότε έχουμε έναν πίνακα τριών διαστάσεων: //γραμμές//x//στήλες//x//κανάλια// όπου //κανάλια//=3 για την περίπτωση RGB. Εάν η εικόνα μας είναι ασπρόμαυρη (bitmap δηλαδή μόνο άσπρο=1 και μαύρο=0) ή τόνων του γκρίζου (greyscale δηλαδή όλα τα γκρίζα από 0 μαύρο έως 255 άσπρο για εικόνα 8 μπιτ) τότε έχει δύο διαστάσεις: //γραμμές//x//στήλες//. Ας ξεκινήσουμε με την [[https://upload.wikimedia.org/wikipedia/en/2/24/Lenna.png| Λέννα]] αποθηκεύοντάς την στον χώρο εργασίας μας και ας δούμε τις κυριότερες εντολές: +
- +
-    octave:1> Lenna_RGB=imread('Lenna.png'); +
-    warning: your version of GraphicsMagick limits images to 16 bits per pixel +
-    octave:2> Lenna_R=Lenna_RGB(:,:,1); +
-    octave:3> Lenna_G=Lenna_RGB(:,:,2); +
-    octave:4> Lenna_B=Lenna_RGB(:,:,3); +
-    octave:5> imshow(Lenna_RGB); +
-    radeon: Acquired access to Hyper-Z. +
-Στην εντολή 1 διαβάσαμε με την [[http://octave.sourceforge.net/octave/function/imread.html|imread]] την Λέννα ως ένα πίνακα τριών διστάσεων διότι είναι έγχρωμη εικόνα RGB. Στην συνέχεια αποκόψαμε κάθε κανάλι σε χωριστούς πίνακες: έναν για το κόκκινο R, έναν για το πράσινο G και έναν για το μπλε B. Στην συνέχεια με την εντολή [[http://octave.sourceforge.net/octave/function/imshow.html |imshow]] εμφανίσαμε την εικόνα της Λέννας σε παράθυρο απεικόνισης με τίτλο Figure 1. (Μερικές φορές εμφανίζονται ενημερωτικά μηνύματα για την χρήση του υλικού όπως εδώ για τα γραφικά, ή άλλες προειδοποιήσεις όπως ίσως δούμε παρακάτω.) +
- +
-Για να κάνουμε χρήση της βιβλιοθήκης [[http://octave.sourceforge.net/image/ |octave-image]] θα πρέπει να τη ενεργοποιήσουμε στο περιβάλλον μας με την εντολή [[http://octave.sourceforge.net/octave/function/pkg.html|pkg]]: +
- +
-    octave:6> pkg load image +
-    warning: function /usr/share/octave/packages/specfun-1.1.0/ellipke.m shadows a core library function +
-    warning: function /usr/share/octave/packages/specfun-1.1.0/expint.m shadows a core library function +
-    warning: function /usr/share/octave/packages/specfun-1.1.0/erfcinv.m shadows a built-in function +
-Οι ειδοποιήσεις αυτές μας ενημερώνουν ότι στην βιβλιοθήκη που μόλις ενεργοποιήσαμε περιέχονται συναρτήσεις με ονόματα ίδια με ήδη δηλωμένες συναρτήσεις. Στην octave ισχύει η τελευταία ενεργοποιημένη συνάρτηση και έτσι «σκιάζονται» όλες οι προγενέστερα ενεργοποιημένες συνώνυμές της. +
-    octave:7> imhist(Lenna_G); +
-    octave:8> imshow(Lenna_G,[3 222]); +
-Με την εντολή [[http://octave.sourceforge.net/image/function/imhist.html|imhist]] βλέπουμε το ιστόγραμμα του πράσινου καναλιού που απομονώσαμε προηγουμένως ενώ με την imshow που ακολουθεί το εμφανίζουμε με γραμμική ενίσχυση των τόνων του από το 3 έως το 222. +
-    octave:9> Lenna_GH=histeq(Lenna_G); +
-    octave:10> imshow(Lenna_G); +
-    octave:11> figure +
-    octave:12> imshow(Lenna_GH); +
-Με την εντολή [[http://octave.sourceforge.net/image/function/histeq.html|histeq]] ισοδυναμοποιούμε το ιστόγραμμα της εικόνας Lenna_G στην νέα εικόνα Lenna_GH. Εμφανίζουμε την Lenna_G, με την εντολή [[http://www.gnu.org/software/octave/doc/interpreter/Multiple-Plot-Windows.html|figure]] δημιουργούμε ένα νέο παράθυρο απεικόνισης και εμφανίζουμε την εικόνα Lenna_GH. Έτσι μπορούμε να συγκρίνουμε τις εικόνες και με ανάλογο τρόπο και την εντολή imhist τα ιστογράμματά τους. +
- +
-Φίλτρα; Απαυτά κι αν έχει. Κι ας αρχίσουμε με το φίλτρο διαμέσου [[http://octave.sourceforge.net/image/function/medfilt2.html|medfilt2]]+
-    octave:13> Lenna_GM=medfilt2(Lenna_G,[5 5]); +
-    octave:14> figure(2),imshow(Lenna_GM) +
-όπου 5x5 είναι η διάσταση του παραθύρου εφαρμογής. +
-Ας πάμε στην συνάρτηση [[http://octave.sourceforge.net/image/function/fspecial.html|fspecial]] η οποία επιστρέφει ένα προκαθορισμένο φίλτρο ενώ η [[http://octave.sourceforge.net/image/function/imfilter.html|imfilter]] το εφαρμόζει. Δείτε και θα καταλάβετε: +
-    octave:15> f=fspecial('sobel'+
-    octave:16> Lenna_Sobel=sqrt(imfilter2(,f).^2+imfilter2(,f').^2); +
-    octave:17> figure(2),imshow(histeq(Lenna_Sobel)) +
- +
-Φτάνει;Πειστήκατε; Όσοι δεν πειστήκατε δείτε τις [[http://octave.sourceforge.net/image/overview.html|περιεχόμενες]] συναρτήσεις της βιβλιοθήκης image της octave και θα καταλάβετε. +
-Δεν γράφω άλλα ;-) +
- +
- +
  
 ======Άλλες βιβλιοθήκες και πρόσθετο υλικό====== ======Άλλες βιβλιοθήκες και πρόσθετο υλικό======
  
-Πολύ καλή η βιβλιοθήκη octave image. Καμιά άλλη έχει; Άκου λέει; Πολλές και θα τις βρείτε [[http://octave.sourceforge.net/packages.php|εδώ]]. Φυσικά τώρα πρέπει να κάνετε και λίγο ψάξιμο και λίγο περισσότερο διάβασμα και σίγουρα πολλές δοκιμές για να καταλήξετε σε αυτές που θέλετε. Και μην ξεχνάτε: τα πάντα είναι πίνακες και μπορείτε να κάνετε από τα πιο απλά μέχρι τα πιο σύνθετα πράγματα μαζί τους. +======Επίλογος; Όχι. Τώρα ξεκινάμε... ;-)======
- +
-Πριν χρειαστείτε πρόσθετο υλικό για την octave βεβαιωθείτε ότι έχετε ρίξει μια ματιά στα [[http://www.gnu.org/software/octave/doc/interpreter/|περιεχόμενά]] της. +
- +
-Αλλά κι αν θέλετε παράθυρα και ομορφιές και τζιβιτζιλίκια κι απ' αυτά έχει «το μαγαζί». Από την έκδοση 3.8.0 (31/12/2013) περιέχεται γραφικό περιβάλλον διεπαφής με τον χρήστη (gui) μέσα στην octave με την παράμετρο --force-gui. Ο λόγος που δεν είναι διαθέσιμο άμεσα και απλά, είναι διότι ελπίζουμε ότι μέχρι την έκδοση 4.0 θα είναι πλήρως έτοιμο και λειτουργικό. +
- +
-Αν θέλετε να βοηθήσετε την ανάπτυξη της octave μπορείτε να επισκεφτείτε αυτήν την ιστοσελίδα http://www.gnu.org/software/octave/get-involved.html. Αν εντοπίσετε κάποιο σφάλμα ή δυσλειτουργία δείτε [[http://www.gnu.org/software/octave/bugs.html| εδώ]] τι πρέπει να κάνετε. [[http://wiki.octave.org/Projects|Εδώ]] θα βρείτε προτάσεις για ανάπτυξη νέων λειτουργιών και τέλος [[http://wiki.octave.org/Main_Page|εδώ]] ο επίσημος βικιχώρος της. +
- +
-Μετά από όλα αυτά μην ξεχάσετε μια επίσκεψη στις [[http://wiki.octave.org/Publications_using_Octave|δημοσιεύσεις]] και γιατί όχι μια προσφορά [[http://www.gnu.org/software/octave/donate.html|εδώ]] :-) +
- +
-Καλό κώδικα :-) +
- +
- +
- +
- +
  
 ======Μέτα την παράσταση====== ======Μέτα την παράσταση======
 Με όλα όσα αναφέρθηκαν παραπάνω, έχετε τη δυνατότητα να κάνετε οποιοδήποτε πρόγραμμα υπολογισμών της Σχολής μας και μάλιστα να είναι και αρκετά σταθερό και φιλικό προς τον χρήστη. Με όλα όσα αναφέρθηκαν παραπάνω, έχετε τη δυνατότητα να κάνετε οποιοδήποτε πρόγραμμα υπολογισμών της Σχολής μας και μάλιστα να είναι και αρκετά σταθερό και φιλικό προς τον χρήστη.
- +Επίσης να σημειωθεί ότι αυτό το wiki είναι //ελεύθερο// όπως και η GNU/Octave. Μπορεί ο καθένας να έρθει να συμπληρώσει πράγματα, να διαγράψει ή να τροποποιήσει. Ο προσανατολισμός του είναι ερασιτεχνικός και κομμένος και ραμμένος στις απαιτήσεις τις σχολής μας. Στόχος του είναι να αποτελεί ένα πρακτικό εργαλείο και όχι να σας μάθει να προγραμματίζετε σαν επαγγελματίες. 
-Επίσης να σημειωθεί ότι αυτό το wiki είναι //ελεύθερο// όπως και η GNU/Octave. Μπορεί ο καθένας να έρθει να συμπληρώσει πράγματα, να διαγράψει ή να τροποποιήσει. Ο προσανατολισμός του είναι ερασιτεχνικόςκομμένος και ραμμένος στις απαιτήσεις τις σχολής μας. Στόχος του είναι να αποτελεί ένα πρακτικό εργαλείο και όχι να σας μάθει να προγραμματίζετε σαν επαγγελματίες (αλλά καλύτερα ;-) ). +Επιπρόσθετα θα σας ενθαρρύναμε ότι πρόγραμμα γράφετε να είναι ανοιχτό και ελεύθερο προς όλους. Να μπορεί δηλαδή ο καθένας να διαβάσει τον κώδικα του και να τον τροποποιήσει ανάλογα με τις ανάγκες του.
- +
-Επιπρόσθετα θα σας ενθαρρύναμε ότι πρόγραμμα γράφετε να είναι ανοιχτό και ελεύθερο προς όλους. Να μπορεί δηλαδή ο καθένας να διαβάσει τον κώδικα του και να τον τροποποιήσει ανάλογα με τις ανάγκες του. Φυσικά η καλύτερη άδεια χρήσης δεν είναι άλλη από την http://www.gnu.org/licenses/gpl-3.0.html +
 Μεταφράζοντας τα 4 στοιχεία τα οποία πρέπει να έχει ένα πρόγραμμα για να θεωρείται ελεύθερο (όλη την φιλοσοφία μπορείτε να την βρείτε εδώ : http://www.gnu.org/philosophy/free-sw.html) : Μεταφράζοντας τα 4 στοιχεία τα οποία πρέπει να έχει ένα πρόγραμμα για να θεωρείται ελεύθερο (όλη την φιλοσοφία μπορείτε να την βρείτε εδώ : http://www.gnu.org/philosophy/free-sw.html) :
- 
 => Πρέπει να παρέχει την ελευθερία σε τρίτους να το εκτελούν για οποιοδήποτε λόγο. => Πρέπει να παρέχει την ελευθερία σε τρίτους να το εκτελούν για οποιοδήποτε λόγο.
- 
 => Πρέπει να παρέχει την ελευθερία σε τρίτους να μελετούν πως δουλεύει το πρόγραμμα και να το προσαρμόζουν στις δικές τους ανάγκες. Η ελεύθερη πρόσβαση στον κώδικα είναι προαπαιτούμενη => Πρέπει να παρέχει την ελευθερία σε τρίτους να μελετούν πως δουλεύει το πρόγραμμα και να το προσαρμόζουν στις δικές τους ανάγκες. Η ελεύθερη πρόσβαση στον κώδικα είναι προαπαιτούμενη
- 
 => Πρέπει να παρέχει την ελευθερία σε τρίτους να διανέμουν αντίτυπα του προγράμματος για να βοηθήσουν τον πλησίον τους. => Πρέπει να παρέχει την ελευθερία σε τρίτους να διανέμουν αντίτυπα του προγράμματος για να βοηθήσουν τον πλησίον τους.
- 
 => Πρέπει να παρέχει την ελευθερία σε τρίτους να βελτιώνουν το πρόγραμμα και να δημοσιεύουν τις βελτιώσεις στο ευρύ κοινό, ώστε να επωφελείται από αυτές ολόκληρη η κοινότητα. Η ελεύθερη πρόσβαση στον κώδικα είναι προαπαιτούμενη. => Πρέπει να παρέχει την ελευθερία σε τρίτους να βελτιώνουν το πρόγραμμα και να δημοσιεύουν τις βελτιώσεις στο ευρύ κοινό, ώστε να επωφελείται από αυτές ολόκληρη η κοινότητα. Η ελεύθερη πρόσβαση στον κώδικα είναι προαπαιτούμενη.
- 
 **Τέλος ας σημειωθεί ότι ο όρος //free software// πρέπει να αντιλαμβάνεται ως //freedom of speech// και όχι ως //free beer//. ;)** **Τέλος ας σημειωθεί ότι ο όρος //free software// πρέπει να αντιλαμβάνεται ως //freedom of speech// και όχι ως //free beer//. ;)**
  
octave.txt · Τελευταία τροποποίηση: 2021/01/30 13:59 από 62.210.151.70