Zurück   Flashforum > Flash > ActionScript > ActionScript 2

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 25-11-2009, 20:09   #1 (permalink)
Neuer User
 
Registriert seit: Aug 2006
Beiträge: 368
webcam - rahmen um bewegung zeichnen

hi.

ich hab dieses "webcam_motion" tutorial auf ADOBE gefunden:
link: Webcam Motion Detection: Using the BitmapData API in Flash 8 | Adobe Developer Connection

.fla download: http://download.macromedia.com/pub/d...am_old_new.zip

ist es irgendwie möglich einen rahmen um die aktive fläche zu zeichnen?

liebe grüße
atlas ist offline   Mit Zitat antworten
Alt 25-11-2009, 20:14   #2 (permalink)
Neuer User
 
Registriert seit: Mar 2006
Beiträge: 302
jep das geht relativ leicht. Benutzt am besten die Methode getColorBoundsRect(), dort gibst du eine Farbe an und dann bekommst du ein Rechteck bzw. deinen Rahmen zurück.

Hab auch n paar BLogeinträge zu diesen Webcam Tracking und Motion Sachen geschrieben. Vielleicht ist da was für dich dabei Webcam | der hess
__________________
Gruß
Flo

---- blog.derhess.de ---- My Book Store ---- YouTube iNspIreNewMedia ----
Blog, Flash-Programmierung, Interaction Development und alles andere mit Medien
der_hess ist offline   Mit Zitat antworten
Alt 25-11-2009, 20:29   #3 (permalink)
Neuer User
 
Registriert seit: Aug 2006
Beiträge: 368
hi der_hess!

danke für deine antwort.
das ist das momentane AS:
ActionScript:
  1. now.draw(conti.vid);
  2.             now.draw(before, new Matrix(), new ColorTransform(), 'difference');
  3.             now.threshold(now, rect, pt, '>', 0xff333333, 0xffffffff);
  4.            
  5.             before.draw(conti.vid);
  6.             //------------------------------------
  7.             cbr = now.getColorBoundsRect(0xffffffff, 0xffffffff, true);
  8.             cc = now.threshold(now, cbr, new Point(cbr.x, cbr.y), '==', 0xffffffff, 0xffffffff);

wie bekomm ich denn jetzt die ganze aktive fläche farbig? irgendwie hab ich ein brett vorm kopf :/

l.g.
atlas ist offline   Mit Zitat antworten
Alt 25-11-2009, 23:38   #4 (permalink)
Neuer User
 
Registriert seit: Mar 2006
Beiträge: 302
was willst du jetzt genau machen? Das Rechteck um die aktive Fläche malen. Die Rahmendaten bzw das Rechteck erhälst du ja in deiner cbr Variablen. Damit malst du dann mit drawRect() oder per lineTo(), moveTo(), beginFill() und endFill() dein Rechteck...

Falls du aber nur die aktive Fläche einfärben willst, hilft dir die Funktion Bitmap.floodFill() weiter. Dort musst du einen speziellen Punkt angeben (der sollte bei dir innerhalb der aktiven Fläche sein) und dann gibst du noch deinen gewünschten Farbwert ein und schön hat die aktive Fläche eine spezielle Farbe...
__________________
Gruß
Flo

---- blog.derhess.de ---- My Book Store ---- YouTube iNspIreNewMedia ----
Blog, Flash-Programmierung, Interaction Development und alles andere mit Medien
der_hess ist offline   Mit Zitat antworten
Alt 26-11-2009, 16:22   #5 (permalink)
Neuer User
 
Registriert seit: Aug 2006
Beiträge: 368
hallo

ich hab mir mal deine "lighttracking" sachen angeschaut.
ich möchte wie in deinem beispiel einen rahmen um die aktive fläche zeichnen.


hab probiert das von dir zu adaptieren:
ActionScript:
  1. function zeichne_Hotspot() {
  2.     //
  3.     conti.rect1.clear();
  4.     conti.createEmptyMovieClip("rect"+1, conti.getNextHighestDepth());
  5.     //
  6.     conti.rect1.lineStyle(2, 0xFF00FF, 100);
  7.     conti.rect1.moveTo(rect.x, rect.y);
  8.     //
  9.     conti.rect1.lineTo(rect.x+cbr.width, rect.y);
  10.     conti.rect1.lineTo(rect.x+cbr.width, rect.y+cbr.height);
  11.     //
  12.     conti.rect1.lineTo(rect.x, rect.y+cbr.height);
  13.     conti.rect1.lineTo(rect.x, rect.y);
  14.    
  15. }
es wird auch gezeichnet und verändert die grösse aber es bewegt sich nicht mit der "aktiven fläche" - sondern bleibt immer in der ecke stehen!
was fehlt noch?
atlas ist offline   Mit Zitat antworten
Alt 28-11-2009, 11:41   #6 (permalink)
Neuer User
 
Registriert seit: Aug 2006
Beiträge: 368
hallo der_hess

ich hab mal meine .fla datei angehangen.
wäre super wenn du mir sagen könntest wie und wo ich das lineto/moveto dort unterbringen muss damit es die aktive fläche einrahmt.

ich bekomme es irgendwie nicht hin das es sich so wie in deinem "lightwriter" beispiel an die grösse der aktiven fläche anpasst. (Webcam – Lightwriter Version 2.0 | der hess)

würde mich freuen!
l.g.

Geändert von atlas (08-12-2009 um 17:00 Uhr)
atlas ist offline   Mit Zitat antworten
Alt 29-11-2009, 20:39   #7 (permalink)
Neuer User
 
Registriert seit: Aug 2006
Beiträge: 368
irgendjemand anderes eine idee?

das ganze befindet sich schon alles in der .FLA datei - nur der rahmen wird halt nicht richtig um die fläche gezeichnet!
wieso bloss?

Geändert von atlas (08-12-2009 um 17:00 Uhr)
atlas ist offline   Mit Zitat antworten
Alt 01-12-2009, 16:44   #8 (permalink)
Neuer User
 
Registriert seit: Aug 2006
Beiträge: 368
anders gefragt ;)

hallo

ich frag nochmal anders.
wie bekommt man herraus wie lang die fläche zwischen dem weißen pixel der am nächsten zum linken und dem der am nächsten zum rechten rand ist?
(ich hab mal ein beispiel bild in den anhang geladen.)

hier auch nochmal das verwendete AS:
ActionScript:
  1. import flash.display.*;
  2. import flash.geom.*;
  3. //
  4. var cam:Camera = Camera.get();
  5. //
  6. cam.setMode(640, 480, 30);
  7. vid.attachVideo(cam);
  8. //
  9. vid._width = cam.width;
  10. vid._height = cam.height;
  11. //
  12. var active = false;
  13. var bmdX = 160;
  14. var bmdY = 120;
  15. //
  16. now = new BitmapData(bmdX, bmdY);
  17. before = new BitmapData(bmdX, bmdY);
  18. rect = new Rectangle(0, 0, bmdX, bmdY);
  19. pt = new Point(0, 0);
  20. //
  21. detectMotion = function () {
  22.     this.onEnterFrame = function() {
  23.         if (!cam.muted && active == true) {
  24.             now.draw(vid);
  25.             now.draw(before, new Matrix(), new ColorTransform(), 'difference');
  26.             now.threshold(now, rect, pt, '>', 0xff333333, 0xffffffff);
  27.             before.draw(vid);
  28.             //
  29.             cbr = now.getColorBoundsRect(0xffffffff, 0xffffffff, true);
  30.             cc = now.threshold(now, cbr, new Point(cbr.x, cbr.y), '==', 0xffffffff, 0xffffffff);
  31.         }
  32.     };
  33. };

l.g.

Geändert von atlas (08-12-2009 um 17:00 Uhr)
atlas ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
rahmen animiert zeichnen method360 ActionScript 2 5 19-06-2008 01:07
Rahmen zeichnen alexanderD ActionScript 2 4 17-04-2007 09:13
Rahmen zeichnen 2 alexanderD ActionScript 2 1 16-04-2007 13:31
Rahmen zeichnen...? StartUp ActionScript 1 4 03-07-2006 12:09
Movieclip Rahmen zeichnen Utopian Flash MX 2004 7 24-02-2005 13:37


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:45 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele