matlabΈστω πως έχετε πολλές (πολλές!) εικόνες και θέλετε να τις δείξετε στους φίλους σας έστω κάποιο κοινωνικό εικονικό δίκτυο (γκου χου, γκου χου, ονόματα δε λέμε).

Παρατηρείτε πως κάθε φορά που πρέπει να ανεβάσετε ένα album από την τελευταία σας εξόρμηση στη φύση ή εκείνο το φοβερό πάρτι, το εν λόγω δίκτυο κάνει 3456* 10^10 ώρες μέχρι να τις ανεβάσει.

Είναι προφανές (για να μη πούμε προφανέστατο) πως η ολοκαίνουργια φωτογραφική σας με τα 20 mega pixel, που τραβά τέλειες φωτογραφίες, ΔΕΝ έχει να κάνει τίποτε με το πρόβλημα αυτό. Βέβαια, παρατηρείτε επίσης πως ο σκληρός σας δίσκος τώρα τελευταία «σαν πολύ γρήγορα να γεμίζει».

Το κεντρικό πρόβλημα μπορεί να εστιαστεί στο γεγονός πως η σύγχρονες φωτογραφικές μηχανές (standalone ή embedded – λ.χ. στο κινητό σας) είναι ικανές για αποτύπωση εντυπωσιακών διαστάσεων εικόνων. Οι μεγάλες διαστάσεις φυσικά συνοδεύονται κι από μεγάλο όγκο αρχείου και ποιότητα εικόνας που μεν είναι απαραίτητη για την υψηλής ποιότητας εκτύπωση των φωτογραφιών, ωστόσο, στο διαδίκτυο είναι απλά υπερβολή.

Έτσι αυτό που πρέπει να γίνει είναι να αλλάξετε τις διαστάσεις των εικόνων ώστε να γίνουν μικρότερες (αλλά και πάλι υψηλής ποιότητας) τόσο σε διαστάσεις όσο και σε όγκο δεδομένων.

Προσοχή πρέπει να δοθεί στο γεγονός πως η αλλαγή αυτή πρέπει να γίνει σε ένα αφιερωμένο αντίγραφο των δεδομένων για την απεικόνισή τους στο διαδίκτυο (ή όποια άλλη σχετική δράση έχετε κατά νου) ενώ τα αρχικά δεδομένα (master copies) πρέπει να μείνουν αναλλοίωτα).

Ως εδώ τα πράγματα είναι εύκολα και υλοποιήσιμα ακόμα και με τα συνήθη προγράμματα επεξεργασίας εικόνας όπως το photoshop και τα αντίστοιχα. Έλα όμως στο σενάριο μας το album σας αποτελείται από εικόνες από διαφορετικές φωτογραφικές (όλης της παρέας που συμμετείχε στο γεγονός) και έτσι δεν είναι όλες οι φωτογραφίες των ίδιων αρχικών διαστάσεων. Ακολούθως, θέλετε επιλεκτικά μόνο οι φωτογραφίες με διαστάσεις πάνω από ένα κατώφλι να τύχουν επεξεργασίας.

Το Matlab αποτελεί αξιοσημείωτη λύση για προγραμματιστές στα πρώτα τους βήματα με την υψηλού επιπέδου γλώσσα του που αφαιρεί μέρος της προγραμματιστικής πολυπλοκότητας και διαθέτει συναρτήσεις επεξεργασίας εικόνας επαγγελματικού επιπέδου! Ακόμα, με το Matlab η οπτικοποίηση των δεδομένων είναι «παιχνιδάκι» και έτσι το συνιστούμε ανεπιφύλακτα.

Για να είμαστε ειλικρινείς, όχι απλά το συνιστούμε, αλλά πήραμε το θάρρος να ετοιμάσουμε και 3 πλήρως λειτουργικές απλές συναρτήσεις (με τα απαραίτητα σχόλια) για να αντιμετωπίσετε το πρόβλημα με την αλλαγή των διαστάσεων των εικόνων με τη χρήση του Matlab. Ευχόμαστε να σας δώσουμε έναυσμα για δοκιμάσετε την εκτέλεση και βελτίωση του κώδικα.

Καλό προγραμματισμό 🙂

Πηγαίος κώδικας: Matlab – Βatch image resize

Share This: