Announcement

Collapse
No announcement yet.

Schnelles 2D-Zeichnen. Welches Tool?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Schnelles 2D-Zeichnen. Welches Tool?

    Hallo,

    ich stehe vor folgendem Problem: Ein bildgebender Sensor mit Auflösungen von bis zu 10k Pixeln liefert mir Daten, welche ich in Fehlfarben als Bild darstellen will. Bisher habe ich dies mit dem Embarcadero C++ builder gelöst, einfach mittels Canvas->Rectangle(). Jetzt komme ich aber an das Problem, dass die FPS immer größer werden sollen und dieses Vorgehen schlicht zu langsam ist. Habe mittels AQtime nachgemessen und für das Zeichnen des Bmps im RAM vergeht die meiste Zeit.
    Nun also die Frage: Welche Tools sind hier die besten um ein einfaches 2D-Bild so schnell wie möglich zeichnen zu können? Helfen mir Geschichten wie DirectX oder OpenGL, da die ja eigentlich auf 3D optimiert sind? Was würdet Ihr verwenden?

    Viele Grüße,

    Bodo

    Edit: Wenn es ein passendes Tool gäbe, welches in den Embarcadero C++ Builder integrierbar wäre, wäre das natürlich optimal.
    Zuletzt editiert von bodo2407; 12.05.2017, 14:59.

  • #2
    Ich kann zur Umsetzung nichts sagen, schau mal in Delphipraxis.net, da gibt es eine ganze Reihe Diskussionen dazu. Bibliotheken wie GDI, .. performante Algorithmen usw.
    Ist zwar primär Delphi, Bibliotheken, Vorgehen usw, sollte aber auch für Emba C++ passen.
    Im Zweifel kenne ich jemand, der vor ein paar Jahren Bildgebung für Hochauflösende Sensoren in Delphi umgesetzt hat, ich weiß allerdings nicht genau, ob es dabei um performante Anzeige ging oder Fehlerkorrektur, Normalisierungsfunktionen, ..
    Gruß, defo

    Comment


    • #3
      Hallo,

      ich würde http://www.cuvilib.com/ verwenden. Wenn das nicht geht (wegen Hardware), so http://opencv.org/
      Solche Libs haben schon den prinzipiellen Vorteil dass sie auf Byteströmen arbeiten, anstatt mit Canvas und dort für jedes Pixel ein Rectangle zu zeichnen. Die Hardwareunterstützung (GPU) kommt dann noch obendrein dazu.

      Gehen beide nicht, so https://cairographics.org/ (händisch zeichnen ähnlich wie du es jetzt machst). Hier könnte auf CPU-Ebene parallelisiert werden.
      GDI und GDI+ würde ich hier meiden. Da könnte zwar CPU-Parallel gearbeitet werden, aber GDI synchronisiert dann so dass es jede Menge Thread-Contention gibt. Das ist dafür einfach nicht geeignet.

      mfG Gü
      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

      Comment


      • #4
        Originally posted by gfoidl View Post
        ich würde http://www.cuvilib.com/ ..
        http://opencv.org/

        Gehen beide nicht, so https://cairographics.org/ (händisch zeichnen ähnlich wie du es jetzt machst).
        Ich mach gar nichts. Ich kenne Leute, die Bildverarbeitung machen, aber hauptsächlich Hardware. Das genannte Programm war glaub ich nur Konfiguration, Justierung oder so, weiß ich nicht mehr genau.

        Ich versteh nach Deinen Links hier auch nicht, (cuvi) was Du genau vorhast.
        Darstellen oder bearbeiten? Oder beides?
        OpenGL sollte im übrigen auch im 2D Bereich was bringen, ich hab damit persönlich aber keine nennenswerten Erfahrungen.
        Gruß, defo

        Comment


        • #5
          Hallo Ihr beiden,

          erst mal danke für die Antworten. Die Links sehen doch schon mal sehr gut aus, ich glaube ich werde mich mit OpenCV erst mal etwas eingehender beschäftigen. Von dem was ich da gesehen habe, hat das Kit noch weitere Funktionen, die für mich interessant sein könnten :-)
          Vielen Dank!

          Bodo

          Comment


          • #6
            Hallo defo,

            deine Antwort -- bezogen auf mein Zitat -- kann ich nicht einordnen. Hast du mich da mit dem OT verwechselt od. worum geht es?

            mfG Gü
            "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

            Comment


            • #7
              Originally posted by gfoidl View Post
              Hallo defo,

              deine Antwort -- bezogen auf mein Zitat -- kann ich nicht einordnen. Hast du mich da mit dem OT verwechselt od. worum geht es?

              mfG Gü
              Ja, so ist es, ich habe Dich mit Bodo2407 verwechselt, eigentlich nicht mal das, einfach nur "gedacht" alle Anworten seien von Bodo2407,
              entschuldige bitte.
              Gruß, defo

              Comment

              Working...
              X