AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

schnelle getPixel Funktion

Ein Thema von schwarzerlotus · begonnen am 16. Aug 2011 · letzter Beitrag vom 17. Aug 2011
Antwort Antwort
Seite 2 von 3     12 3   
Benutzerbild von ChrisE
ChrisE

Registriert seit: 15. Feb 2006
Ort: Hechingen
504 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#11

AW: schnelle getPixel Funktion

  Alt 16. Aug 2011, 13:24
@medium
Das Zitat stammt aus dem Ausgangspost

Gruß, Chris
Christian E.
Es gibt 10 Arten von Menschen, die die Binär lesen können und die die es nicht können

Delphi programming rules
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.674 Beiträge
 
Delphi 2007 Enterprise
 
#12

AW: schnelle getPixel Funktion

  Alt 16. Aug 2011, 13:27
Das ist von viertel vor zehn! Du verlangst das unmögliche Dennoch bleibt das manuelle inlinen eine gute Option. Wenn man derart auf die Tube drücken muss, geht halt etwas Schönheit dabei drauf. Bei einem Einzeiler find ich das auch ausgesprochen vertretbar.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von ChrisE
ChrisE

Registriert seit: 15. Feb 2006
Ort: Hechingen
504 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#13

AW: schnelle getPixel Funktion

  Alt 16. Aug 2011, 13:30
Das ist von viertel vor zehn! Du verlangst das unmögliche
Entschuldigung
Christian E.
Es gibt 10 Arten von Menschen, die die Binär lesen können und die die es nicht können

Delphi programming rules
  Mit Zitat antworten Zitat
schwarzerlotus

Registriert seit: 25. Jul 2011
22 Beiträge
 
#14

AW: schnelle getPixel Funktion

  Alt 16. Aug 2011, 13:46
@Medium

wahlfreien Zugriff brauche ich nicht wirklich aber ich habe zum Beispiel einen Algorithmus in dem ich mit einem Maskenbild und zwei rois auf einem anderen Bild arbeite - ich hantiere also mit drei Scanline Pointern die ich dann richtig bestimmen und inkrementieren muss.
Aber ich hab mich schon fast damit abgefunden das direkt in der Hauptfunktion zu machen und den Pixel Zugriff nicht in eine Funktion auszulagern. Wie du schon gesagt hast geringe Laufzeit > Eleganz und Lesbarkeit

@ChrisE

hab mal die Index Tabelle ausprobiert aber das Durchlaufen der Schleife hat sich dabei nicht signifikant verbessert - liegt zwischen 27 und 28 ms.
  Mit Zitat antworten Zitat
Benutzerbild von ChrisE
ChrisE

Registriert seit: 15. Feb 2006
Ort: Hechingen
504 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#15

AW: schnelle getPixel Funktion

  Alt 16. Aug 2011, 13:49
hab mal die Index Tabelle ausprobiert aber das Durchlaufen der Schleife hat sich dabei nicht signifikant verbessert - liegt zwischen 27 und 28 ms.
Kannst du mal nen Beispielprojekt anhängen?

Gruß, Chris
Christian E.
Es gibt 10 Arten von Menschen, die die Binär lesen können und die die es nicht können

Delphi programming rules
  Mit Zitat antworten Zitat
schwarzerlotus

Registriert seit: 25. Jul 2011
22 Beiträge
 
#16

AW: schnelle getPixel Funktion

  Alt 16. Aug 2011, 14:16
Ok hier mal meine kleine Testapp - hab noch etwas aufgeräumt und das graphics32 rausgenommen damit ihr nicht noch zusätzliche Abhängigkeiten habt.
Einmal wird das Bild mit Scanline und TRGBTriple Pointer und einmal mit BPyteArrays durchlaufen.
Außerdem dann einmal die von TBitmap abgeleitete Klasse mit zwei getPixel Methoden für die Liste von PbyteArray Pointern und dann mit der Liste der vorher berechneten X Offsets.
Die fastpixel Methode von Bummi funktioniert bei mir noch nicht.

bye Maick

P.s. mein Testimage hab ich mal nicht mit in das zip File gepackt - das wäre 9MB groß - ist ein ganz normales RGB Bild 2048*1536
Angehängte Dateien
Dateityp: zip ImageTest.zip (241,1 KB, 16x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von ChrisE
ChrisE

Registriert seit: 15. Feb 2006
Ort: Hechingen
504 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#17

AW: schnelle getPixel Funktion

  Alt 16. Aug 2011, 14:28
Hallo,

TMyBitmap fehlt

Gruß, Chris
Christian E.
Es gibt 10 Arten von Menschen, die die Binär lesen können und die die es nicht können

Delphi programming rules
  Mit Zitat antworten Zitat
schwarzerlotus

Registriert seit: 25. Jul 2011
22 Beiträge
 
#18

AW: schnelle getPixel Funktion

  Alt 16. Aug 2011, 14:37
ohhh sorry ganz vergessen
Angehängte Dateien
Dateityp: pas myBitmap.pas (1.019 Bytes, 13x aufgerufen)
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.674 Beiträge
 
Delphi 2007 Enterprise
 
#19

AW: schnelle getPixel Funktion

  Alt 16. Aug 2011, 14:46
Noch ein Vorschlag: Parallelisierung. Sobald du eine CPU mit >1 Kern hast, lohnt sich Multithreading merklich. Auf welcher Ebene man dann ansetzt ist etwas individuell, aber wenn es entsprechend viele Bilder sind, wäre denke ich viel gewonnen, wenn du einfach den aktuellen gesamten Vorgang in einen Thread schubst, und davon so grob übern Daumen Kernanzahl*2 Mal viele davon ackern lässt. Da die Operation an sich aber schon recht fix ist, ließen sich den Threads statt je eines einzelnen Bildes auch eine Liste von ein paar mehr zustecken, so dass man sich nicht nachher durch den Overhead der Threadverwaltung wieder zu viel kaputt macht. Das ist in der Regel dann ein wenig trial and error bis man da ein ungefähres Optimum hat.
Seit ich Threadblut geleckt habe, komm ich davon nicht mehr runter
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
schwarzerlotus

Registriert seit: 25. Jul 2011
22 Beiträge
 
#20

AW: schnelle getPixel Funktion

  Alt 16. Aug 2011, 14:49
Da ich hier auf 4 Kernen arbeiten kann ist das auf jeden Fall eine Option
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

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

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf