EmguCV c# Gesicht Erkennungs Fehler?

Hallo,

Ich versuche in winforms den bilschirm aufzunehmen und dann gesichter darauf zu erkennen, screen aufzunehmen funktioniert auch so weit aber durch die gesicht erkennung krieg ich immer ein error wegen dem timer und dann geht es garnicht mehr...bisher hab ich das:

        static readonly CascadeClassifier cascadeClassifier = new CascadeClassifier("haarcascade_frontalface_alt_tree.xml");


        private void screentimer_Tick(object sender, EventArgs e, NewFrameEventArgs eventArgs)
        {

//funktioniert
            Bitmap printscreen = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
            Graphics graphics = Graphics.FromImage(printscreen as Image);
            graphics.CopyFromScreen(0, 0, 0, 0, printscreen.Size);
            using (MemoryStream s = new MemoryStream())
            {
                printscreen.Save(s, System.Drawing.Imaging.ImageFormat.Bmp);
                //pictureBox1.Size = new System.Drawing.Size(this.Width, this.Height);
                pictureBox1.Image = Image.FromStream(s);


            }



//fehler
            Bitmap bitmap = (Bitmap)eventArgs.Frame.Clone();
            Image<Bgr, byte> grayImage = new Image<Bgr, byte>(bitmap);
            Rectangle[] rectangles = cascadeClassifier.DetectMultiScale(grayImage, 1.2, 1);
            foreach (Rectangle rectangle in rectangles)
            {
                using (Graphics g = Graphics.FromImage(bitmap))
                {
                    using (Pen pen = new Pen(Color.DarkRed, 1))
                    {
                        g.DrawRectangle(pen, rectangle);
                    }
                }
            }
            pictureBox1.Image = bitmap;


        }

Ich hoffe jemand weiß wie ich das ändern kann vielen dank im voraus!

...zum Beitrag

Hab ne lösung:

static readonly CascadeClassifier cascadeClassifier = new CascadeClassifier("haarcascade_frontalface_alt_tree.xml");


        private void screentimer_Tick(object sender, EventArgs e)
        {
            Bitmap printscreen = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
            Graphics graphics = Graphics.FromImage(printscreen as Image);
            graphics.CopyFromScreen(0, 0, 0, 0, printscreen.Size);
            using (MemoryStream s = new MemoryStream())
            {
                printscreen.Save(s, System.Drawing.Imaging.ImageFormat.Bmp);
                //pictureBox1.Size = new System.Drawing.Size(this.Width, this.Height);
                pictureBox1.Image = Image.FromStream(s);


            }
            Bitmap bitmap = new Bitmap(pictureBox1.Image);
            Image<Bgr, byte> grayImage = new Image<Bgr, byte>(bitmap);
            Rectangle[] rectangles = cascadeClassifier.DetectMultiScale(grayImage, 1.4, 0);
            foreach(Rectangle rectangle in rectangles)
            {
                using (Graphics g = Graphics.FromImage(bitmap))
                {
                    using(Pen pen = new Pen(Color.Red, 1))
                    {
                        g.DrawRectangle(pen, rectangle);
                    }
                }
            }
            pictureBox1.Image = bitmap;
        }
    }
...zur Antwort

Guck dir am besten ein tutorial an,

du müsstest erstmal im animator ein trigger machen,

dann im script

//Var
public animator Anim;

//da wo du die animation abspielen möchtest
Anim.SetTrigger("TriggerName") //bei TriggerName kommt der name des triggers
...zur Antwort

Einfaches Beispiel

Ohne etwas:

PC --> Internetanbieter --> Website

Vpn:

PC --> Vpn --> Internetanbieter --> Website

Tor:

PC --> Tor --> Tor --> Tor --> Internetanbieter --> Website

...zur Antwort

Um z.B. einen Virus zu machen reicht meistens ein grundverständnis von einer programmiersprache (bei mir z.B. C#) ich bin nicht besonders gut, aber ich habe schon einige Viren gemacht(natürlich nur um c# zu üben bzw. Zu testen was ich kann).und wie gesagt ich bin nicht besonders gut also braucht man nur die grundkenntnisse einer programmiersprache(nach dem Code kann man auch googlen)

Ich weiß aber nicht ob du das so gemeint hast :)

...zur Antwort

Ich würde autohotkey bzw ahk empfehlen

Man kann eig. alles für einen bot machen

Sleep, 5000 <--- Macht das eine pause da ist (5 Sekunden in dem fall)

Send, {M} <--- Klickt taste M
Send, {LButton} <--- Klickt Linke Maustaste
usw...

es gibt:
Mousemove, 1, 1 <---- Bewegt maus zu einem bestimmten ort(Mousemove, x, y)

Dann gibts bild, farbpixel erkennung....(kann man einf googlen)
Mann kann auch GUI's damit machen...
...zur Antwort

Das ist eig. Ziemlich easy

erst(macht falls numpad0 gedrückt wird):

Numpad0::

Dann(drückt a):

Send, {a}

Dann(macht eine pause in ms):

Sleep, 10500

Dann(drückt b):

Send, {b}

Und als letztes(damit das script nicht einf beendet wird sondern du wieder numpad0 drücken kannst):

return

Also alles zusammen:

Numpad0::
Send, {a}
Sleep, 10500
Send, {b}
return
...zur Antwort

Also ich würde C# empfehlen da du damit spiele, software usw. entwickeln kannst außerdem ist es meiner erfahrung nach deutlich leichter als c++

wie man damit anfängt:

Unity(Spiele Programmieren): https://www.youtube.com/watch?v=DZbQRw-ftnU&list=PL_pqkvxZ6ho1g_e56fct7Cm6bgQBhmAqN&ab_channel=ProgrammierenStarten

Software: https://www.youtube.com/watch?v=l0aKBziWBH8&list=PL_pqkvxZ6ho18awjThtUMZio-yvc79TGi&ab_channel=ProgrammierenStarten

...zur Antwort

Nur wenn er den Code den du bekommen hast eingibt also wenn du ihm den Code nicht geschrieben hast passiert nichts

...zur Antwort

Ich weiß nicht wie komplex das spiel ist aber AHK wäre eine Idee damit kannst du leicht maustasten und Tastatur automatisch drücken lassen und die Maus automatisch bewegen....Wichtig wäre das du erstmal nach Grundlagen suchst:

Grundlagen(GUI brauchst du nicht umbedingt): https://www.youtube.com/watch?v=ZMo1DbIkymY&t

Und hier wie man ein bot macht:

Bot: https://www.youtube.com/watch?v=S235EBUqfwc

Hier ein Beispiel sehr simple(Autoclicker kann man mit r starten und mit r pausieren):

Pause on


Loop
{
Click
sleep 1
}


R::Pause

oder ein simples strafe Script:

^w:: 	;starts strafe					
	continue := true			
	Sleep 5
	Send {W down}
	Loop {
		Sleep 1
		if not GetKeyState("W","P"){
			Send {s up}
			break
		}	
		Send {d down}
		Loop, 12
		Sleep, 25
		Send {d up}
		Sleep 1
		Send {a down}
		Loop, 12
		Sleep, 25
		Send {a up}	
	}
return
 
^r::Reload   ;Reloads the script (save before reloading!)
return
 
^p::ExitApp  ;Closes the script entirely

Ich hoffe ich konnte helfen :D


...zur Antwort

Ich habe es einfach mit einer |Coroutine| gelöst trotzdem wäre es nützlich zu wissen also gerne trotzdem antworten :D

...zur Antwort

Liegt es vlt daran dass du es für die pixel von deinem Bildschirm gemacht hast, ich meine damit das dein Handy wahrscheinlich eine niedrigere Resolution hat, in dem Game tab kannst du die Resolution Ansicht ändern oben links

...zur Antwort

Achso ich war bissel dumm hab immer cubeInstance.position geschrieben dabei muss man cubeInstance.transform.position schreiben

...zur Antwort

Problem ist das wenn er dem Player folgt das er dann mega langsam ist aber ich weiß nicht wo ich speedfollow * Time.deltaTime rein machen muss/soll

    public float waitTime;
    public int speed = 1;
    public Transform[] patrolpoints;
    int currentPointIndex;


    public Transform target;
    public int minRange;
    public float speedfollow;


    bool follow;


    bool once;




    void Update()
    {
        if (Vector3.Distance(transform.position, target.position) < minRange)
        {
            follow = true;
        }
        else
        {
            follow = false;
        }


        if (follow)
        {
            transform.LookAt(target);
            transform.Translate(Vector3.forward * Time.deltaTime);
        }


        if(follow == false)
        {
            if (transform.position != patrolpoints[currentPointIndex].position)
            {
                transform.position = Vector3.MoveTowards(transform.position, patrolpoints[currentPointIndex].position, speed * Time.deltaTime);
            }
            else
            {
                if (once == false)
                {
                    once = true;
                    StartCoroutine(Wait());
                }
            }
        }
    }


    IEnumerator Wait()
    {
        yield return new WaitForSeconds(waitTime);
        if(currentPointIndex + 1 < patrolpoints.Length)
        {
            currentPointIndex++;
        }
        else
        {
            currentPointIndex = 0;
        }
        once = false;
    }


...zur Antwort

Hab's

...zur Antwort

Wie du sagtest c# ist eine objektorientierte Sprache, Wie java leider hab ich mir c++ nie wirklich angeschaut deswegen hab ich was das betrifft wenig Ahnung:)

...zur Antwort

ich glaube ganz unten muss noch eine klammer zu sein :)

...zur Antwort

Ich habe einfach nach dem Fehler bei Google gesucht ^^ da fehlt anscheinend irgendwo ne klammer :)

...zur Antwort

Kinder bzw ich selber mögen es ja auch spiele zu programmieren, wenn dies der Fall ist am besten mit der Unity engine(es gibt auch andere gute), und da wäre es die programmier sprache c#(welche man auch für Desktop apps benutzen kann....)

...zur Antwort
Ich hasse sie

Habe es zwar nicht aber ich glaube/ weiß das es ziemlich nervig ist

...zur Antwort