Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von digi333
Thema: Pointerfrage
Am im Forum: Grafik und Sound

Nicht böse sein... das geht echt nicht anders oder einfacher???

Thema: Pointerfrage
Am im Forum: Grafik und Sound

Deswegen mein Zusatz Anfänger (Youngblood).

Meinst du so???


byte tempbyte;
Marshal.Copy(tempByte, 0, pRGB, 1);

Thema: Pointerfrage
Am im Forum: Grafik und Sound

Ich möchte ehrlich gesagt nicht den Umweg machen über Bitmaps und SetPixel und GetPixel. Mir würde es reichen zu wissen warum ich den Inhalt des Pointer nicht speichern kann.

By the way... immernoch blutigster Anfänger.

Thema: Pointerfrage
Am im Forum: Grafik und Sound

Ich kann leider nicht Debuggen, da ich die Ausgabe in einer Delphi-Umgebung habe. Ohne die Zeile 88 funktioniert es soweit auch, deswegen ist es bestimmt nur ein Übergabefehler.

Resharper und Compiler meckern nicht, aber die Ausgabe bleibt leer.

Thema: Pointerfrage
Am im Forum: Grafik und Sound


byte leftPixel = 0;

IntPtr Scan0rgb = rgbData.Scan0;
void* picout = (void*)rgbData.Scan0;
// Outputpointer
byte* pRGB = (byte*)(void*)Scan0rgb;

//... mache irgendwas mit pRGB
pRGB[0] = 128;

// Das geht nicht!
leftPixel = pRGB[0];

Der ganze Quellcode wär zu lang deswegen hab ich die Schleifen und alles drum herum weg gelassen. Es kommt ein Fehler im Programm raus bei der Übergabe zu leftPixel. Scheinbar kann ich den Pointerwert nicht übergeben. Ne Idee???

Falls jemand den Quellcode sehen will... Problem in Zeile 88-89.

Thema: Color in Double-Wert umwandeln
Am im Forum: Grafik und Sound

Frage ist geklärt

Thema: Color in Double-Wert umwandeln
Am im Forum: Grafik und Sound

Eine Frage hab ich noch wie bekomme ich den Datentyp bmp.FastBitmap in Bitmap umgewandelt???


frame_pic       = new FastBitmap(frame.Width, frame.Height, PixelFormat.Format24bppRgb);

//Problem: frame_pic hat ja nicht die Methoden von Bitmap -> Vererbung?
Bitmap bmp = new Bitmap(frame_pic); ?????????????

BitmapData bmpdata = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb);
void* picout = (void*)bmpdata.Scan0;

Thema: Color in Double-Wert umwandeln
Am im Forum: Grafik und Sound

Du hast recht... der Datentyp war von mir global definiert. Danke!

Thema: Color in Double-Wert umwandeln
Am im Forum: Grafik und Sound

Das ist mir schon klar wie man einen Mittelwert berechnet, aber colArray ist vom Typ Color und ich möchte gerne diesen in einen Daouble-Wert umwandeln (da meckert er).

Thema: Color in Double-Wert umwandeln
Am im Forum: Grafik und Sound

Ich verwende die Methode ToColorArray() aus der Klasse FastBitmap. Jetzt möchte ich gerne die Farbwerte aufsummieren und den Mittelwert als Double-Wert übergeben. Wie geht das???


frame_pic       = new FastBitmap(frame.Width, frame.Height, PixelFormat.Format24bppRgb);
// Gibt ein 2-Dimensionales Color Array zurück, welches das Bild darstellt
colArray        = frame_pic.ToColorArray();
double value  = 0;

for (int x = 0; x < frame.Width; x++)
{
    for (int y = 0; y < frame.Height; y++)
    {
          value += colArray[x, y];   
     }
}

Danke!

Thema: Hough Transformation
Am im Forum: Grafik und Sound

@MrSparkle: Die Hough Transformation ist schon sehr spannend. Ich will nicht weit ausholen, aber ich will sie verwenden um in Bildern Bälle zu erkennen. Es kann aber auch für ganz andere Sachen verwendet werden (Augen, Strichcode, Gesichter... halt alles was aus Kreisen und Linien besteht). So wie im Beispiel.

oben links: das reale Bild einer Luftaufnahme.
oben mitte: das daraus resultierende Kantenbild (häufig Sobel oder Canny)
oben rechts: alle geraden Linien nach Hough-Transformation

Und zwar werden alle Linien aus dem Kanten Bild in den Hough-Raum abgebildet (durch den Winkel und die Richtung). Im Hough-Raum kreuzen sich alle Punkte einer Geraden in einem Hough-Punkt (siehe unten links). Wenn man also die Maxima separiert (unten rechts) erhält man die Lage und Richtung der Linien. So ähnlich funktioniert es mit den Kreisen.

Also wie gesagt schon recht spannend und wie ich finde auch sehr elementar wenn man sich mit bildverarbeitung beschäftigt.

@Herbivore: Ich hab den Satz schon so verstanden wie du meintest, aber ich wollte keinen Streit vom Zaun brechen.

Gruss
Digi333

Thema: Hough Transformation
Am im Forum: Grafik und Sound

Ui... das ist schade, da es eine elementare Frage bei der Bildbearbeitung zur Erkennung von Kreisen und Geraden ist. Also von der Sache an sich schon sehr spannend. In C++ hab ich in einem französischen Forum sogar Quellcode gefunden, aber ich bin nicht sehr fit mit C++, deswegen wär mir C# lieber.

Forum-Link: Hough-Code in C++

Thema: Hough Transformation
Am im Forum: Grafik und Sound

Huch!!! 8o Hier hätte ich mit mehr Feedback gerechnet.

Thema: Hough Transformation
Am im Forum: Grafik und Sound

Hallo zusammen,

Hat sich jemand schon mal an eine Hough Transformation versucht??? Sie soll sehr rechenintensiv sein und kompliziert. Ich wäre sehr dankbar für Quellbeispiele wenn vorhanden, aber auch andere Sachen sind gerne gesehen.

Ich möchte gerne Kreise und Linien in Kantenbildern (wie Canny) erkennen. Wenn jemand irgendwas in die Richtung gemacht hat ist mir das auch willkommen, da ich gerade bei der Informationssuche bin.

Die Suche hab ich verwendet, aber bei dem Suchbegriff Hough kam keine Treffer.

Gruss
digi333

Thema: [Anfänger] Farbiger String???
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich geb ihn aus in eine Grafischen Oberfläche (Delphi). Dort kann ich nur alles oder garnichts ändern. Schade geht also nicht.

Dank euch allen

Thema: [Anfänger] Farbiger String???
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich möchte gerne einen farbig machen und unterstreichen. Geht das?? Wenn ja, wie?

string bsp = "Dies ist ein Test";
Dies ist einTest

Danke!
Digi333

Thema: Garbage collector - Befehl??
Am im Forum: Grafik und Sound

Ich hab meinen Fehler erkannt und wollte euch natürlich nicht die Antwort vorenthalten. Der Fehler ist zwar trivial, aber für mich unverständlich.

Falsch ist


Bitmap bmp = new Bitmap (width, height);
bmp.Dispose();
//Speicher quillt über

Richtig ist


Bitmap bmp = new Bitmap (width, height, PixelFormat.Format24bppRgb);
bmp.Dispose();
//Speicher quillt nicht über

In der grafischen Oberfläche sieht man keinen Unterschied... halt nur der Speicher. Da ich aber ein absoluter Anfänger bin, würde mich schon der Hintergrund interessieren. Was ist ein Bitmap ohne PixelFormat?? Und was ist dann der jeweilige Defaultwert?? Warum hält der GC den Wert im Speicher??

Thema: Array speichern ohne SQL??? [Anfänger]
Am im Forum: Datentechnologien

kann ich dann das Array wieder lesen und ganz normal damit umgehen oder ist dann ein Mehraufwand nötig?? Nach dem Motto... suche Inhalte und Zellen.

File.ReadAllLines(path)

... und ja auf Festplatte. Das Tool soll vergleichen können zwischen verschiedenen statischen Inhalten von Arrays. Also sprich erzeuge eine Datenbank mit Arrays und vergleiche ob in der aktuellen Datenbank ein Array aus der gespeicherten Datei identisch sind.

Seralisierung??? Sorry sagt mir nichts! Ich google mal!

Thema: Array speichern ohne SQL??? [Anfänger]
Am im Forum: Datentechnologien

Ich möchte gerne wissen wie man ein Array speichern kann mit 200 Listenelemeten. Ich möchte aber nicht unbedingt mit MySQL oder SQL arbeiten. Vielleicht gibt es ja in C# einen Befehl um solche Arrays zu speichern.

Gruss
Digi333

Thema: Garbage collector - Befehl??
Am im Forum: Grafik und Sound

Leider nein (hab nochmal nachgeschaut)! Der Code verursacht sogar 10 MB... Das ist fatal, da sekündlich 10 MB dazu kommen. In 30 Sekunden ist mein Arbeitsspeicher voll und die grafische Oberfläche stürzt ab.

Thema: Garbage collector - Befehl??
Am im Forum: Grafik und Sound

Zitat
Original von herbivore
Es kann aber auch sein, dass du einfach viele Strings mit + zusammenhängt. Das kann auch den Speicher gut voll machen.

Strings??? Ich übergebe Strings an die grafische Oberfläche, aber das ist eigentlich sehr wenig (ich kann mir nicht vorstellen, dass diese 3 Mb groß werden)... Können den Strings tatsächlich so ansteigen? Aber die kann man nicht disposen, oder? Die sollten auf jeden Fall vom GC entfernt werden. Behaupte ich mal...

Gruss
Digi333

Thema: Garbage collector - Befehl??
Am im Forum: Grafik und Sound

Okay... Ich versteh eure Antworten so, dass das Bitmap nicht das Problem ist, da das Dispose() den Speicher wieder frei macht oder sogar im schlimmsten Fall der GC. Das ist schade... da es das Problem leider nicht behebt.

Und die Sache irgendwie umschreiben geht nicht (so dass das new weg ist)?? Den Quelltext kann ich nicht offen legen, aber ich kann versichern, dass da nur kleine Berechnungen drinne sind.

Thema: Garbage collector - Befehl??
Am im Forum: Grafik und Sound

Ich sag doch vielleicht bin ich zu doof für Dispose(). Der Originalquelltext ist im grunde wie oben im Beispielquelltext aufgebaut. Erzeuge bmp... Arbeite auf bmp... und "Zerstöre" bmp. Die letzte Zeile in Execute ist bmp.Dispose(). Sind damit nicht die Ressourcen wieder frei???

Thema: Garbage collector - Befehl??
Am im Forum: Grafik und Sound

Leider ist Bitmap nicht immer gleich groß... sonst hätte ich es ja schon statisch gesetzt.

Wie gesagt... der Speicher raßt mächtig nach oben. Denn einzigen verdacht den ich hab ist das Bitmap (es existiert zwar noch global ein BitmapData, aber das kann es nicht sein). Der Quelltext ist überschaubar... da kann nichts anderes so schnell wachsen außer ein Bitmap (und das ist das einzige).

Das unsafe ist hier nur ein Beispiel, da ich in dem richtigen Quellcode noch weitere Übergabeparameter habe (die ich hier nicht angegeben habe).

Thema: Garbage collector - Befehl??
Am im Forum: Grafik und Sound

Wie gesagt habe ich Probleme mit dem new... ob so oder so. Der Speicher rennt trotzdem ins unermäßliche. X(

Thema: Garbage collector - Befehl??
Am im Forum: Grafik und Sound

Ich hab folgenden Quellcode...


public class beispiel
{
	private Bitmap bmp = null

	public unsafe override void Execute(int width, int height)
	{
		if (bmp != null) // wenn noch altes Bitmap vorhanden, löschen
		{
			bmp.Dispose();
		}
		Bitmap temp = new Bitmap(width, height);
		bmp = new Bitmap(temp);
     temp.Dispose();
		... 		// arbeite mit bmp!
     bmp.Dispose(); // nur zur Sicherheit (wird dann nicht mehr gebraucht)
	}
Ich würde gerne ein Bitmap erzeugen aber ohne new Bitmap. Am liebsten wäre mir es Bitmap bmp global zu besitzen und bei jedem Aufruf wird bmp überschrieben. Leider wird aber erst width und height in der Methode übergeben. Das Problem ist das irgendwie bmp immer neu erzeugt wird durch new und der Speicher irgendwann überquillt. Scheinbar bin ich zu doof für Dispose().

Danke
Digi333

Thema: Garbage collector - Befehl??
Am im Forum: Grafik und Sound

Zitat
Original von Golo
Zitat
Original von MagicAndre1981

GC.Collect();

Das muss - damit es sicher funktioniert - aber zwei Mal hintereinander aufgerufen werden.
Warum den das eigentlich??

Thema: Garbage collector - Befehl??
Am im Forum: Grafik und Sound

Ich weiß das die GarbageCollection automatisch läuft, aber ich wollte fragen, ob man den Spiecher per Hand auch noch aufräumen kann. Ich hab ein Programm geschrieben, dass in Videosequenzen Bilder bearbeitet. Am Anfang jedes Frames erzeuge ich ein Bitmap und ein Graphics und zum ende dispose ich es auch wieder. Trotzdem "explodiert" mein Speicher mit 2 bis 3 MB pro Frame. Wenn der Arbeitsspeicher voll ist stürtzt dann die Delphi-Oberfläche ab.

Ich bin ja noch am suchen was da so groß wird, aber jede Idee wäre hilfreich.

Ne Idee?

Gruss
Digi333

Thema: [Anfänger] IP setzen und Rechnername
Am im Forum: Netzwerktechnologien

thx

Thema: [Anfänger] IP setzen und Rechnername
Am im Forum: Netzwerktechnologien

Ein Set-Befehl wäre super! Kannst mir vielleicht sagen, wie ich den Eintrag in der Registry ändern kann, wenn ich ihn gefunden habe? Ich meine damit naturlich einen Befehl.

Uhrzeit und Datum? Muß doch da auch in der Nähe sein von System.Environment... aber dort aúch der Set-Befehl.

1000 mal Danke im voraus!