Video Input for Windows

Συζητήσεις για γλώσσες προγραμματισμού και θέματα σχετικά με προγραμματισμό.
Post Reply
User avatar
AmmarkoV
Wow! Terabyte level
Wow! Terabyte level
Posts: 2838
Joined: Thu Nov 04, 2004 2:55 pm
Gender:
Location: Reloaded @ Santa Friday
Contact:

Video Input for Windows

Post by AmmarkoV » Sun Nov 19, 2006 11:59 pm

Μετά από αρκετό ψάξιμο και ξενύχτια :smt024 :smt025 , με υπερηφάνεια σας παρουσιάζω το VideoDLL.dll το οποίο επιτρέπει να παίρνετε εικόνες από οποιαδήποτε πηγή (DV camera , WebCam , TV Tuner) και να τις επεξεργάζεστε σαν array από Pixels. Είπα να το postάρω εδώ μήπως και κάποιος έχει σκεφτεί να ασχοληθεί με Image Capturing και είχε χαθεί (όπως και εγώ στα tutorials του DirectX και τις ιδιοτροποίες του Visual Studio)
Δεν χρειάζεται καμμία γνώση σε σχέση με DirectX , Direct Show ενώ επειδή είναι dll η βιβλιοθήκη παίζει και από C++ με mingw και από FreePascal :) και από όλες τις Windows ported γλώσσες..
Θέλει DirectX 8.1 και πάνω μάλλον..

Οι εντολές είναι οι εξής

InitCamera(); // Το καλείτε μια φορά και κάνει το initialization του DLL και του DirectShow , ανοίγοντας την πρώτη συσκευή Input που βρίσκει

SnapShot(); //Αποθηκεύει την εικόνα που βλέπει η συσκευή σε ένα αρχειάκι cap.bmp
Snap() //Αποθηκεύει την εικόνα που βλέπει η συσκευή στην μνήμη
GetVideoXY(int x,int y)// Επιστρέφει το χρώμα από το τελευταίο Snap που έχει το Pixel X,Y σε μορφή COLORREF (το οποίο ισοδυναμεί με integer)
CopyDC(HDC hDC)// Κάνει BitBlt σε κάποιο παράθυρο που πιθανόν να έχετε ανοιχτό

UnInitCamera(); // Το καλείτε όταν τελειώσατε οριστικά με την χρήση του DLL


Για να πάρετε RGB από το COLORREF κάντε include το windows.h
και οι εντολές είναι GetRValue(COLORREF clr); GetGValue(COLORREF clr);
GetBValue(COLORREF clr);

Θα το βελτιώσω γιατί προς το παρόν κάνει unload/load κάποια πράματα ανα Snap με αποτέλεσμα χρονική καθυστέρηση
Μαζί με το DLL έχω και 2 mini Projects το ένα βαράει σειρήνα όταν εντοπίσει κίνηση και το άλλο κάνει ένα Effect σαν αυτό στις ειδήσεις για τον καιρό.. Δλδ αφήνετε την camera να δεί έναν τοίχο για κάποια δευτερόλεπτα και μετά όταν μπείτε στην εικόνα αντί να φαίνεται ο τοίχος από πίσω σας φαίνεται μια εικόνα που έχετε βάλει στο background.bmp

Ανάλογα με τα παράσιτα που πιάνει η Webcam σας τα 2 Projects μπορεί να μην δουλεύουν τέλεια , απλά είναι 50 γραμμές κώδικας.. Δεν έχουν σοφιστικέ filtering.. ;)

LINK ΠΑΡΑΚΑΤΩ

ADDED 21/11/06
Μετά από διάφορα tweaks βελτιώθηκε πολύ η ταχύτητα input των εικόνων. Πλέον υπάρχει framerate! :smt033 :compress:
Ορίστε το recompilation..
LINK ΠΑΡΑΚΑΤΩ

ADDED 21/11/06 - 16:24
Έβαλα και ένα καινούργιο Project που λέγεται Video Mouse και το οποίο επιτρέπει να ελέγχετε τον cursor δείχνοντας με το δάχτυλο σας :)
Click και Double Click δεν γίνεται αλλά θα μπορούσε να γίνεται με φωνή.. Να δείχνει κάποιος με το δάχτυλο και να λέει Άνοιξε \:D/

Επίσης σκέφτομαι να φτιάξω και κανένα mini game όπως αυτά του EyeToy για το Playstation ή όπως ένα 3d Scanner
πραγματικά οι εφαρμογές είναι άπειρες..

Click Here to Download
Last edited by AmmarkoV on Tue Nov 21, 2006 6:38 pm, edited 4 times in total.
Spoiler: εμφάνιση/απόκρυψη
I would love to change the world, but they won't give me the source code. Οι καθηγητές πληρώνονται από το δημόσιο αρα από όλους τους Έλληνες για να κάνουν τα μαθήματα. Όλοι οι Έλληνες θα έπρεπε να μπορούν να δουν τα μαθήματα τα οποία πληρώνουν! Tο πνευματικό έργο που επιτελείται με τα χρήματα του δημοσίου ΔΕΝ είναι μόνο δικό σας Όποιος δεν δίνει πανελλήνιες έχει δικαίωμα στην γνώση που πληρώνει [url=http://ammar.gr/gddg]gddg blog[/url]
Image
User avatar
zweistein
Wow! Terabyte level
Wow! Terabyte level
Posts: 4537
Joined: Sun Oct 15, 2006 10:49 pm
Gender:
Location: in your computer
Contact:

Post by zweistein » Mon Nov 20, 2006 12:01 am

WooOOOOOooW!!!!!!!!!!!!!!! :shock: :shock: :shock: :shock:

congratz!!!! :-D :-D :-D
Image
User avatar
ciao
Wow! Terabyte level
Wow! Terabyte level
Posts: 2371
Joined: Mon May 03, 2004 1:15 am
Academic status: PhD
Gender:
Location: πίσω από την μπάλα

Post by ciao » Mon Nov 20, 2006 3:14 am

Πολύ καλό!
Μπράβοsss και από εμένα! ;) :smt023
S.S.D.D.
User avatar
AnINffected
Gbyte level
Gbyte level
Posts: 1935
Joined: Fri Jul 30, 2004 7:12 am
Location: There and Back Again

Post by AnINffected » Tue Nov 21, 2006 4:01 pm

Τέέέέ΄λειος!!!! :smt023
The Analytical Engine has no pretensions to originate anything. It can do whatever we know how to order it to perform (...)
Ada Lovelace


Θέλω και εγώ να παίξω D&D λέμε!!! :-( :-(
User avatar
AmmarkoV
Wow! Terabyte level
Wow! Terabyte level
Posts: 2838
Joined: Thu Nov 04, 2004 2:55 pm
Gender:
Location: Reloaded @ Santa Friday
Contact:

Post by AmmarkoV » Tue Nov 21, 2006 4:38 pm

Thnx :-D
Να ξαναπώ οτι το DLL μπορεί να το χρησιμοποιήσει όποιος απο σας θέλει μη εμπορικά και για αυτό το postara κιόλας. Κάνει πολύ απλή την διαδικασία ανοίγματος Video συσκευών.
Αν πάλι κανείς έχει ιδέα για εμπορική εφαρμογή ;) (να βγάλουμε και κανένα EURO) , ευπρόσδεκτος.. :-p :lol:
Spoiler: εμφάνιση/απόκρυψη
I would love to change the world, but they won't give me the source code. Οι καθηγητές πληρώνονται από το δημόσιο αρα από όλους τους Έλληνες για να κάνουν τα μαθήματα. Όλοι οι Έλληνες θα έπρεπε να μπορούν να δουν τα μαθήματα τα οποία πληρώνουν! Tο πνευματικό έργο που επιτελείται με τα χρήματα του δημοσίου ΔΕΝ είναι μόνο δικό σας Όποιος δεν δίνει πανελλήνιες έχει δικαίωμα στην γνώση που πληρώνει [url=http://ammar.gr/gddg]gddg blog[/url]
Image
Post Reply

Return to “Προγραμματισμός”