AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Scanline: Punkt finden
Thema durchsuchen
Ansicht
Themen-Optionen

Scanline: Punkt finden

Ein Thema von Larsi · begonnen am 29. Aug 2008 · letzter Beitrag vom 3. Sep 2008
Antwort Antwort
Seite 1 von 2  1 2      
Larsi

Registriert seit: 10. Feb 2007
2.262 Beiträge
 
Delphi 2007 Professional
 
#1

Scanline: Punkt finden

  Alt 29. Aug 2008, 12:36
Hi,
wie kann ich schnell via Scanline ein Bild nach einen roten Punkt durchsuchen und dann die Position von dessen herausfinden?

MFG Lars Wiltfang
Ein Tag ohne Delphi ist ein verlorener Tag!

Homepage zu meinem neuen Programm: StreamZ
  Mit Zitat antworten Zitat
angos

Registriert seit: 26. Mai 2004
Ort: Rheine
549 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Scanline: Punkt finden

  Alt 29. Aug 2008, 13:49
hi,


wenn du dir das hier auf deine Bedürfnisse umbaust, solltest du das herausbekommen. In dem Beispiel wird halt ein Pixel rot eingefärbt. mit kurzem überlegen dürfte das dann aber klappen:

bitmap tutorial


HTH

Gruß
Ansgar
Ansgar
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Scanline: Punkt finden

  Alt 29. Aug 2008, 13:55
Abgesehen davon muss man sich im Vorfeld überlegen, was ein "roter Punkt" eigentlich ist (Farb-Annäherung).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Larsi

Registriert seit: 10. Feb 2007
2.262 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Scanline: Punkt finden

  Alt 29. Aug 2008, 14:37
Zitat von angos:
hi,


wenn du dir das hier auf deine Bedürfnisse umbaust, solltest du das herausbekommen. In dem Beispiel wird halt ein Pixel rot eingefärbt. mit kurzem überlegen dürfte das dann aber klappen:

bitmap tutorial


HTH

Gruß
Ansgar
Ja, das ist mir bereits bekannt aber irgendwie verstehe ich nicht wie ich das "umbauen" kann sodass es bei mir funktioniert. Probier jetzt schon seit 20 Minuten rum aber irgednwie kapiers ichs nicht.
Ein Tag ohne Delphi ist ein verlorener Tag!

Homepage zu meinem neuen Programm: StreamZ
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Scanline: Punkt finden

  Alt 29. Aug 2008, 14:41
statt p^[3] etwas zuzuweisen, prüfst du halt die Farbwerte. Ich verstehe nicht wo dein problem ist, und "geht nicht" ist auch keine hinreichende Beschreibung (d)eines Problems
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
Larsi

Registriert seit: 10. Feb 2007
2.262 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Scanline: Punkt finden

  Alt 29. Aug 2008, 14:43
Zitat von inherited:
prüfst du halt die Farbwerte.
Da fängts ja bei mir schon mit den PRoblemen an, nämlich wie mache ich das?
Ein Tag ohne Delphi ist ein verlorener Tag!

Homepage zu meinem neuen Programm: StreamZ
  Mit Zitat antworten Zitat
angos

Registriert seit: 26. Mai 2004
Ort: Rheine
549 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Scanline: Punkt finden

  Alt 29. Aug 2008, 14:47
du musst erstmal das hier für dich klären
Zitat von DeddyH:
Abgesehen davon muss man sich im Vorfeld überlegen, was ein "roter Punkt" eigentlich ist (Farb-Annäherung).

dann musst du doch einfach den Teil aus dem Tutorial, wo der wert zugewiesen wird umbauen und danach abfragen.

Beispiel(ungetestet):
Delphi-Quellcode:
procedure TForm1.MakeRed(Bit: TBitmap);
type
  PixArray = array [1..3] of Byte;
var
  p: ^PixArray;
  h,w: Integer;
begin
  for h:=0 to Bit.Height-1 do
  begin
    p:= Bit.ScanLine[h];
    for w:=0 to Bit.Width-1 do
    begin
      if (p^[3]=255) then
      begin
        showmessage('Juchhu!!! Zeile: ' + IntToStr(h) + ' Spalte ' + IntToStr(w));
      end;
      Inc(p);
    end;
  end;
end;

[EDIT] 20mins... da kann man auch mal länger suchen


[edit 2]
Zitat:
Da fängts ja bei mir schon mit den PRoblemen an, nämlich wie mache ich das?
na (ganz einfach) so:
Delphi-Quellcode:
  p^[1] // Entspricht dem Blau-Anteil
  p^[2] // Entspricht dem Grün-Anteil
  p^[3] // Entspricht dem Rot-Anteil
Ansgar
  Mit Zitat antworten Zitat
Larsi

Registriert seit: 10. Feb 2007
2.262 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Scanline: Punkt finden

  Alt 29. Aug 2008, 15:38
Zitat von DeddyH:
Abgesehen davon muss man sich im Vorfeld überlegen, was ein "roter Punkt" eigentlich ist (Farb-Annäherung).
Also ich habe jetzt mit meiner Webcam ein Bild gemacht, dass abgespeichert und dann diese Routine von angos verwendet. Das Problem ist nur dass diese immer Punkte auf meiner Haut ausgibt und nicht zum Beispiel von dem roten Stift in meiner Hand. Woran liegt das? Kann man da irgendwas machen?
Ein Tag ohne Delphi ist ein verlorener Tag!

Homepage zu meinem neuen Programm: StreamZ
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#9

Re: Scanline: Punkt finden

  Alt 29. Aug 2008, 15:43
Hallo Lars,

versuch doch einmal heraus zu bekommen welche Werte Dein "roter" Stift hat.

Zitat:
na (ganz einfach) so:
Delphi-Quellcode: markieren
p^[1] // Entspricht dem Blau-Anteil
p^[2] // Entspricht dem Grün-Anteil
p^[3] // Entspricht dem Rot-Anteil



Gruß
K-H
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Scanline: Punkt finden

  Alt 29. Aug 2008, 15:46
Das heißt also, rot ist nicht (nur) clRed. Ich würde es dann als "rot" bezeichnen, wenn die Grün- und Blauanteile recht niedrig, der Rotanteil aber ziemlich hoch ist. Wo man nun bei den beiden Begriffen "recht" und "ziemlich" aus dem vorherigen Satz die Grenze setzt, das ist die Kunst.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 15:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz