Προς το περιεχόμενο

C++ WebCam Απορια


PotirasK.O

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπερα σε ολους !

 

Φτιάχνω ενα προγραμματακι για την webcam.

Δηλαδη αυτο που θελω να κάνει ειναι να τραβάει βίντεο για 5 sec ( με ονομα video1.avi ) να το αποθηκευει,να ξανατραβαει ενα νεο βιντεο για αλλα 5 sec ( με ονομα video2.avi ) και να τα συγκρινει.

 

Η ερωτηση μου ειναι αν γνωριζεται κανενα τροπο ετσι ωστε να συγκρινω τα δυο βιντεο μεταξυ τους και επισης αν γνωριζεται καμια ετοιμη συναρτηση σε C++ που μπορει να σβήνει το αρχειο που θα της ορισω εγω μεσα σε ενα φακελο.

Δημοσ.

Βασικά το να συγκρίνεις βίντεο είναι ένα ανοιχτό ερευνιτικό θέμα.

 

Για τις διάφορες επιμέρους διαδικασίες μπορείς να χρησιμοποιήσεις OpenCV άν και κρίνοντας από το ότι δεν ξέρεις να σβήσεις ένα αρχείο, μάλλον μπλέκεις σε δύσκολα για το επίπεδό σου θέματα.

 

Παρόλα αυτά εάν θες να το κηνυγήσεις εδώ είμαστε να βοηθήσουμε, αλλά θα χρειαστεί να μας πεις κάποια παραπάνω στοιχεία για αυτό που θες να κάνεις ? θες να συγκρίνεις δύο videos frame προς frame ? είναι συγχρονισμένα ? τι διαφορές ψάχνεις μικρές ? μεγάλες ? τι διαφορές υπάρχουν που δεν τις ψάνχεις (αλλάζει ο φωτισμός ? )

 

σκέψου-τα όλα αυτά και πες μας

Δημοσ.
Βασικά το να συγκρίνεις βίντεο είναι ένα ανοιχτό ερευνιτικό θέμα.

 

Για τις διάφορες επιμέρους διαδικασίες μπορείς να χρησιμοποιήσεις OpenCV άν και κρίνοντας από το ότι δεν ξέρεις να σβήσεις ένα αρχείο, μάλλον μπλέκεις σε δύσκολα για το επίπεδό σου θέματα.

 

Παρόλα αυτά εάν θες να το κηνυγήσεις εδώ είμαστε να βοηθήσουμε, αλλά θα χρειαστεί να μας πεις κάποια παραπάνω στοιχεία για αυτό που θες να κάνεις ? θες να συγκρίνεις δύο videos frame προς frame ? είναι συγχρονισμένα ? τι διαφορές ψάχνεις μικρές ? μεγάλες ? τι διαφορές υπάρχουν που δεν τις ψάνχεις (αλλάζει ο φωτισμός ? )

 

σκέψου-τα όλα αυτά και πες μας

 

 

 

Καλο ειναι να μου λετε τι χρειαζεται και εγω απο εκει κ περα το ψαχνω το θεμα.

 

Αυτο που θελω να κάνω ειναι να τραβαω ενα βιντεο για 5 sec , να ξανατραβαω ενα βιντεο αλλα 5 sec να δημιουργω τα ιστογραμματα τους και αν βρεθει διαφορα μεταξύ τους αυτο σημαινει πως κατι αλλαξε μπροστα απο την webcam ( δηλαδη υπαρχει κινηση).

 

Αν γνωριζεται καποιο διαφορετικο τροπο ακουω τις προτασεις σας.

 

Περιμενω απαντησεις γιατι εχω καει στο google!!!

Δημοσ.

Embarcadero Rad Studio 2010

 

φιλαρακι ΒΟΗΘΑ!!!!

 

Βασικά κοιτα:

 

 

Εδω οκ εχω το button1 για να ανοιξω την 1η φωτο ( ειναι image!! ομως )

>

void __fastcall TForm1::Button1Click(TObject *Sender)
{
TOpenDialog *fdlg = new TOpenDialog(this);
fdlg->Filter = "Bitmap Files | *.bmp";
if( fdlg->Execute() )
 {
 Image1->Picture->LoadFromFile(fdlg->FileName);
 }
delete fdlg;
}
//---------------------------------------------------------------------------

 

 

 

Εδω ανοιγω την 2η φωτο ( και παλι image )

>
//Load picture in second image box.
void __fastcall TForm1::Button2Click(TObject *Sender)
{
TOpenDialog *fdlg = new TOpenDialog(this);
fdlg->Filter = "Bitmap Files | *.bmp";
if( fdlg->Execute() )
{
Image2->Picture->LoadFromFile(fdlg->FileName);
}
delete fdlg;
}
//---------------------------------------------------------------------------

 

 

ΕΔΩ ΟΜΩΣ φαινεται πως η function δεχεται TBitmap!!!!!

 

πως θα μπορεσω να στειλω στην συναρτηση αυτη τις images που εχω επιλέξει με τον παραπάνω κώδικα αφου δεχεται TBitmap????

>
//Compare two bitmaps and return true if both are same else return false.
bool TForm1::CompareBitmaps(Graphics::TBitmap* bmp1, Graphics::TBitmap* bmp2)
{
if( bmp1->Height != bmp2->Height || bmp1->Width != bmp2->Width ||
bmp1->PixelFormat != bmp2->PixelFormat )
{
return false;
}
int bitsPerPix = 0;
switch(bmp1->PixelFormat)
{
case pf1bit:
bitsPerPix = 1;
break;
case pf4bit:
bitsPerPix = 4;
break;
case pf8bit:
bitsPerPix = 8;
break;
case pf15bit:
bitsPerPix = 15;
break;
case pf16bit:
bitsPerPix = 16;
break;
case pf24bit:
bitsPerPix = 24;
break;
case pf32bit:
bitsPerPix = 32;
break;

}
int scanLinelength = bmp1->Width * bitsPerPix / 8;
for(int i =0; i < bmp1->Height ; i++ )
{
if( memcmp(bmp1->ScanLine[i], bmp2->ScanLine[i],scanLinelength) != 0)
{
return false;
}
}
return true;
}
//Compare button click handler
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
//Display the comaprison result ina label box.
Label1->Caption = (CompareBitmaps(Image1->Picture->Bitmap,
Image2->Picture->Bitmap )?
"Equal" : "Different");
}


Δημοσ.

Αυτό είναι IDE? Πες μου Compiler τότε... Μπορείς να ανοίξεις επίσης τις φωτογραφίες όπως ανοίγεις ένα txt και να κάνεις μετά string compare...

Δημοσ.

Ε ναι!

 

εχω δει πολλα παραδειγματα στο google οπως λες σαν .txt αλλα αστα να πάνε ( ειναι μουφα τελειως)

 

δες παραπάνω την ερωτηση μου...

Δημοσ.

Δεν ξέρω.. Τι να σου πω? Δεν έχω ασχοληθεί με C++...(όχι ότι το κάνω και σε αυτήν που ασχολούμαι...)

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...