Strichzeichnungsalgorithmus: Beherrschen von Techniken zur präzisen Bildwiedergabe
Von Fouad Sabry
()
Über dieses E-Book
Was ist ein Linienzeichnungsalgorithmus
In der Computergrafik ist ein Linienzeichnungsalgorithmus ein Algorithmus zur Annäherung an ein Liniensegment auf diskreten grafischen Medien, wie z. B. pixelbasierten Displays und Drucker. Auf solchen Medien erfordert das Zeichnen von Strichen eine Annäherung. Grundlegende Algorithmen rastern Linien in einer Farbe. Eine bessere Darstellung mit mehreren Farbabstufungen erfordert einen fortschrittlichen Prozess, räumliches Anti-Aliasing.
Wie Sie profitieren
(I) Einblicke und Validierungen darüber die folgenden Themen:
Kapitel 1: Linienzeichnungsalgorithmus
Kapitel 2: Bresenhams Linienalgorithmus
Kapitel 3: Xiaolin Wus Linienalgorithmus
Kapitel 4: Digitaler Differentialanalysator (Grafikalgorithmus)
Kapitel 5: Mittelpunktkreisalgorithmus
Kapitel 6: 2D-Computergrafik
Kapitel 7: Digitale Geometrie
Kapitel 8: Hough-Transformation
Kapitel 9: Ray Casting
Kapitel 10: Gaußsche Funktion
(II) Beantwortung der öffentlichen Top-Fragen über Strichzeichnungsalgorithmen.
(III) Beispiele aus der Praxis für die Verwendung von Strichzeichnungsalgorithmen in vielen Bereichen.
Für wen dieses Buch gedacht ist
Profis, Studenten und Doktoranden, Enthusiasten, Hobbyisten und diejenigen, die über das Grundwissen oder die Informationen für jede Art von Strichzeichnungsalgorithmus hinausgehen möchten.
Mehr von Fouad Sabry lesen
Neue Technologien in der Landwirtschaft [German]
Ähnlich wie Strichzeichnungsalgorithmus
Titel in dieser Serie (100)
Bildhistogramm: Visuelle Einblicke enthüllen und die Tiefen von Bildhistogrammen in der Computer Vision erkunden Bewertung: 0 von 5 Sternen0 BewertungenFilterbank: Einblicke in die Filterbanktechniken von Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenInpainting: Überbrückung von Lücken in der Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenFarbanpassungsfunktion: Spektrale Empfindlichkeit in Computer Vision verstehen Bewertung: 0 von 5 Sternen0 BewertungenRetinex: Enthüllen Sie die Geheimnisse des computergestützten Sehens mit Retinex Bewertung: 0 von 5 Sternen0 BewertungenComputer Vision: Erkundung der Tiefen des Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenUnterwasser-Computervision: Erkundung der Tiefen der Computer Vision unter den Wellen Bewertung: 0 von 5 Sternen0 BewertungenComputer-Stereo-Vision: Erforschung der Tiefenwahrnehmung in der Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenFarbmanagementsystem: Optimierung der visuellen Wahrnehmung in digitalen Umgebungen Bewertung: 0 von 5 Sternen0 BewertungenAnisotrope Diffusion: Verbesserung der Bildanalyse durch anisotrope Diffusion Bewertung: 0 von 5 Sternen0 BewertungenHistogrammausgleich: Verbesserung des Bildkontrasts für eine verbesserte visuelle Wahrnehmung Bewertung: 0 von 5 Sternen0 BewertungenLärmminderung: Verbesserung der Klarheit, fortschrittliche Techniken zur Rauschunterdrückung in der Bildverarbeitung Bewertung: 0 von 5 Sternen0 BewertungenGemeinsame Fotoexpertengruppe: Erschließen Sie das Potenzial visueller Daten mit dem JPEG-Standard Bewertung: 0 von 5 Sternen0 BewertungenTonzuordnung: Tone Mapping: Erhellende Perspektiven in der Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenGamma-Korrektur: Verbesserung der visuellen Klarheit in der Computer Vision: Die Gammakorrekturtechnik Bewertung: 0 von 5 Sternen0 BewertungenHomographie: Homographie: Transformationen in der Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenAffine Transformation: Visuelle Perspektiven freischalten: Erforschung der affinen Transformation in der Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenRadon-Transformation: Aufdecken verborgener Muster in visuellen Daten Bewertung: 0 von 5 Sternen0 BewertungenLevel-Set-Methode: Weiterentwicklung der Computer Vision, Erforschung der Level-Set-Methode Bewertung: 0 von 5 Sternen0 BewertungenAdaptiver Filter: Verbesserung der Computer Vision durch adaptive Filterung Bewertung: 0 von 5 Sternen0 BewertungenHough-Transformation: Enthüllung der Magie der Hough-Transformation in der Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenVisuelle Wahrnehmung: Einblicke in die computergestützte visuelle Verarbeitung Bewertung: 0 von 5 Sternen0 BewertungenModell des menschlichen visuellen Systems: Wahrnehmung und Verarbeitung verstehen Bewertung: 0 von 5 Sternen0 BewertungenBildkompression: Effiziente Techniken zur visuellen Datenoptimierung Bewertung: 0 von 5 Sternen0 BewertungenFarbraum: Erkundung des Spektrums von Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenFarbprofil: Erforschung der visuellen Wahrnehmung und Analyse in der Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenFarberscheinungsmodell: Wahrnehmung und Darstellung in Computer Vision verstehen Bewertung: 0 von 5 Sternen0 BewertungenHadamard-Transformation: Enthüllung der Leistungsfähigkeit der Hadamard-Transformation in der Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenLeast Squares: Optimierungstechniken für Computer Vision: Methoden der kleinsten Quadrate Bewertung: 0 von 5 Sternen0 BewertungenBündelanpassung: Optimieren visueller Daten für eine präzise Rekonstruktion Bewertung: 0 von 5 Sternen0 Bewertungen
Ähnliche E-Books
Bresenham-Linien-Algorithmus: Effiziente pixelgenaue Linienwiedergabe für Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenRastergrafiken: Die Grundlagen der Rastergrafik in der Computer Vision verstehen Bewertung: 0 von 5 Sternen0 BewertungenEntfernung verdeckter Linien: Das Unsichtbare enthüllen: Geheimnisse des Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenScan Linien Rendern: Erforschung des visuellen Realismus durch Scan Linien Rendern Techniken Bewertung: 0 von 5 Sternen0 BewertungenRaytracing-Grafiken: Erforschung des fotorealistischen Renderings in der Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenVolumen Rendern: Erforschung des Visuellen Realismus in der Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenPolygon-Computergrafik: Erkundung der Schnittstelle zwischen Polygon-Computergrafik und Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenZweidimensionale Computergrafik: Erkundung des visuellen Bereichs: Zweidimensionale Computergrafiken in Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenComputer-Vision-Grafikschnitte: Erforschung von Graphschnitten in der Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenLevel-Set-Methode: Weiterentwicklung der Computer Vision, Erforschung der Level-Set-Methode Bewertung: 0 von 5 Sternen0 BewertungenBündelanpassung: Optimieren visueller Daten für eine präzise Rekonstruktion Bewertung: 0 von 5 Sternen0 BewertungenVerfahrensoberfläche: Erforschung der Texturgenerierung und -analyse in Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenRastergrafik-Editor: Visuelle Realitäten transformieren: Rastergrafik-Editoren in Computer Vision beherrschen Bewertung: 0 von 5 Sternen0 BewertungenTrifokaler Tensor: Erforschung von Tiefe, Bewegung und Struktur in der Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenDatenvisualisierung mit Processing Bewertung: 0 von 5 Sternen0 BewertungenVektorgrafik-Editor: Ermöglichen Sie die visuelle Erstellung mit fortschrittlichen Algorithmen Bewertung: 0 von 5 Sternen0 BewertungenÜbungen zur Numerischen Analysis Bewertung: 0 von 5 Sternen0 BewertungenBildbasierte Modellierung und Rendering: Erforschung des visuellen Realismus: Techniken in der Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenNumerische Grundlagen der Simulation: Kompendium Simulation und Regelung technischer Prozesse, Teil 5 Bewertung: 0 von 5 Sternen0 BewertungenZufallsstichprobenkonsens: Robuste Schätzung in der Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenFarbzuordnung: Erforschung der visuellen Wahrnehmung und Analyse in der Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenDigitale Rastergrafik: Enthüllung der Leistungsfähigkeit digitaler Rastergrafiken in der Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenDreidimensionale Multi-View-Rekonstruktion: Fortgeschrittene Techniken zur räumlichen Wahrnehmung in der Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenHough-Transformation: Enthüllung der Magie der Hough-Transformation in der Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenComputergeometrie: Erforschung geometrischer Erkenntnisse für Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenFrequenzverhalten linearer Systeme: Kompendium Simulation und Regelung technischer Prozesse, Teil 7 Bewertung: 0 von 5 Sternen0 BewertungenBildhistogramm: Visuelle Einblicke enthüllen und die Tiefen von Bildhistogrammen in der Computer Vision erkunden Bewertung: 0 von 5 Sternen0 BewertungenTonzuordnung: Tone Mapping: Erhellende Perspektiven in der Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenRadiosity Computergrafik: Fortschrittliche Visualisierung durch Radiosität in der Computer Vision Bewertung: 0 von 5 Sternen0 BewertungenVektorgrafiken: Beherrschung von Vektorgrafiken in Computer Vision Bewertung: 0 von 5 Sternen0 Bewertungen
Künstliche Intelligenz (KI) & Semantik für Sie
Die KI Bibel, mit künstlicher Intelligenz Geld verdienen: Echte Fallbeispiele und Anleitungen zum Umsetzen Bewertung: 1 von 5 Sternen1/5ChatGPT: Begegnung mit einer neuen Welt: Lernen Sie Künstliche Intelligenz mit der Gratisversion ChatGPT 3.5 Bewertung: 0 von 5 Sternen0 BewertungenWissen statt Glauben!: Das Weltbild des neuen Humanismus Bewertung: 0 von 5 Sternen0 BewertungenPsychologie des Sozialismus Bewertung: 0 von 5 Sternen0 BewertungenChatbotische Medien-Gestaltung leicht gemacht: Von der Idee zum viralen Hit Bewertung: 0 von 5 Sternen0 BewertungenRoboter im Alltag: Maschinen (beinahe) wie Menschen Bewertung: 0 von 5 Sternen0 BewertungenChatGPT: Epische Reise des Erfolgs - 'Steigern Sie Ihren Reichtum': Mit Screenshots aus dem echten Leben - Erreichen Sie finanzielle Höhen Bewertung: 0 von 5 Sternen0 BewertungenKI-Innovationen: Wie die Technologie die Grenzen verschiebt Künstliche Intelligenz verstehen und nutzen: Ein AI-Buch Bewertung: 0 von 5 Sternen0 BewertungenMeistern von ChatGPT: Entriegeln Sie die Kraft der KI für verbesserte Kommunikation und Beziehungen: German Bewertung: 0 von 5 Sternen0 BewertungenChatbotische Landingpages: Wie du deine Konkurrenz in den digitalen Staub schicken Bewertung: 0 von 5 Sternen0 BewertungenDie Zukunft der Arbeit: Digitalisierung, Automatisierung, KI Bewertung: 0 von 5 Sternen0 BewertungenMenschlicher Geist und Künstliche Intelligenz: Die Entwicklung des Humanen inmitten einer digitalen Welt Bewertung: 0 von 5 Sternen0 BewertungenChatGPT – Für Einsteiger: Schreibprofi mit KI, Zeit und Geld sparen ohne peinliche Fehler Bewertung: 0 von 5 Sternen0 BewertungenKünstliche Intelligenz: Die vierte industrielle Revolution Bewertung: 0 von 5 Sternen0 BewertungenEinstieg ins Machine Learning: Grundlagen, Prinzipien, erste Schritte Bewertung: 0 von 5 Sternen0 BewertungenAufstieg der Roboter: Wie unsere Arbeitswelt gerade auf den Kopf gestellt wird - und wie wir darauf reagieren müssen Bewertung: 0 von 5 Sternen0 BewertungenKünstliche Intelligenz in Sozialen Medien Bewertung: 0 von 5 Sternen0 BewertungenDigitalotopia: Sind wir bereit für die (R)Evolution der Wirklichkeit? Bewertung: 0 von 5 Sternen0 Bewertungen
Rezensionen für Strichzeichnungsalgorithmus
0 Bewertungen0 Rezensionen
Buchvorschau
Strichzeichnungsalgorithmus - Fouad Sabry
Kapitel 1: Algorithmus zum Zeichnen von Linien
Ein Linienzeichnungsalgorithmus in der Computergrafik ist ein Algorithmus, der ein Liniensegment auf diskreten grafischen Medien, wie z. B. pixelbasierten Bildschirmen und Druckern, approximiert. Auf solchen Flächen erfordert das Zeichnen von Linien eine Annäherung (in nicht trivialen Fällen). Einfache Algorithmen rastern Linien in einem einzigen Farbton. Räumliches Anti-Aliasing ist ein fortschrittliches Verfahren, das für eine genauere Darstellung zahlreicher Farbabstufungen notwendig ist.
Auf einem kontinuierlichen Medium ist für das Zeichnen einer Linie kein Algorithmus erforderlich. Zum Beispiel erzeugen Kathodenstrahloszilloskope Linien und Kurven mit analogen Phänomenen.
Im Folgenden finden Sie eine unvollständige Liste von Algorithmen für das Zeichnen von Linien:
Naiver Algorithmus
Digital Differential Analyzer (Grafikalgorithmus) – Vergleichbar mit dem naiven Linienzeichnungsalgorithmus, mit ein paar kleinen Unterschieden.
Der Linienalgorithmus von Bresenham ist so abgestimmt, dass er nur Additionen verwendet (d. h. keine Division oder Multiplikation) und Gleitkommaberechnungen vermeidet.
Der Linienalgorithmus von Xiaolin Wu – der räumliches Anti-Aliasing durchführen kann – scheint aufgrund der schwankenden Helligkeit entlang der Länge der Linie seilig
zu sein. Dieser Effekt kann jedoch deutlich minimiert werden, indem die Pixelwerte für die Gammakurve des Zieldisplays vorkompensiert werden, z. B. out = in (1/2,4).
Gupta-Spruill-Formel
Das direkte Skizzieren der Gleichung, die die Linie bestimmt, ist die einfachste Methode des Screenings.
dx = x2 − x1
dy = y2 − y1
für x von x1 bis x2 do
y = y1 + dy × (x − x1) / dx
Grundstück(x, y)
Hier wurden die Punkte bereits geordnet, so dass x_{2}>x_{1} .
Dieser Algorithmus funktioniert einwandfrei, wenn {\displaystyle dx\geq dy} (d. h. der Farbverlauf kleiner oder gleich 1 ist), aber wenn dx
Der primitive Algorithmus zum Zeichnen von Linien ist auf einem digitalen Computer ineffizient und daher langsam. Die Anzahl der Operationen und die Verwendung von Gleitkommaberechnungen tragen zu seiner Ineffizienz bei. Stattdessen werden Algorithmen wie der Linienalgorithmus von Bresenham oder der Linienalgorithmus von Xiaolin Wu bevorzugt.
Basierend auf dem Linienalgorithmus von Bresenham fügt der Gupta-Sproll-Algorithmus Antialiasing hinzu.
Der Pseudocode für eine optimierte Form des Gupta-Sproull-Algorithmus lautet wie folgt:
DrawLine(x1, x2, y1, y2) {
x = x1; y = y1; dx = x2 − x1; dy = y2 − y1; d = 2 * dy − dx; Impulsunterscheider
Euklidischer Abstand des Punktes (x,y) von der Linie (mit Vorzeichen)
D = 0; Euklidischer Abstand zwischen Punkten (x1, y1) und (x2, y2)
length = sqrt(dx * dx + dy * dy); sin = dx / Länge; cos = dy / Länge; while (x <= x2) {
IntensifyPixels(x, y − 1, D + cos); IntensifyPixels(x, y, D); IntensifyPixels(x, y + 1, D − cos); x = x + 1
if (d <= 0) {
D = D + Sünde; d = d + 2 * dy; } else {
D = D + sin − cos; d = d + 2 * (dy − dx); y = y + 1; } }}
Die Funktion IntensifyPixel(x,y,r) verwendet eine radiale Linientransformation und legt die Intensität des Pixels (x,y) mit einem kubischen Polynom fest, dessen Wert vom Abstand des Pixels r von der Linie abhängt.
{Ende Kapitel 1}
Kapitel 2: Bresenhams Linienalgorithmus
Der Linienalgorithmus von Bresenham ist ein Linienzeichnungsverfahren, das die n-dimensionalen Rasterpunkte identifiziert, die ausgewählt werden sollen, um eine gerade Linie zwischen zwei Punkten anzunähern. Es wird häufig verwendet, um Linienprimitive in einem Bitmap-Bild (z. B. auf einem Computerbildschirm) zu zeichnen, da es nur ganzzahlige Addition, Subtraktion und Bitverschiebung erfordert, was alles relativ kostengünstige Operationen in historisch vorherrschenden Computerarchitekturen sind. Es ist einer der frühen Algorithmen, die im Bereich der Computergrafik entwickelt wurden, und ist ein inkrementeller Fehleralgorithmus. Eine Modifikation des ursprünglichen Algorithmus kann verwendet werden, um Kreise zu erstellen.
Während Antialiasing-fähige Techniken wie der Wu-Algorithmus auch in der modernen Computergrafik weit verbreitet sind, bleibt Bresenhams Linienalgorithmus aufgrund seiner Geschwindigkeit und Einfachheit von Bedeutung. Der Algorithmus wird in Plottern und den Grafikchips moderner Grafikkarten verwendet. Auch in zahlreichen Software-Grafikbibliotheken vorhanden. Aufgrund der Einfachheit des Algorithmus wird er häufig in die Grafikhardware oder Firmware aktueller Grafikkarten implementiert.
Heute bezieht sich der Begriff Bresenham
auf eine Familie von Algorithmen, die Bresenhams ursprünglichen Ansatz erweitern oder verändern.
Der Linienalgorithmus von Bresenham ist nach Jack Elton Bresenham benannt, dem IBM-Mitarbeiter, der ihn 1962 entwickelte. Im Jahr 2001 veröffentlichte Bresenham:
Ich arbeitete im Rechenlabor des IBM San Jose Development Lab. Über das Schreibmaschinenterminal 1407 wurde ein Calcomp-Plotter mit einem IBM 1401 verbunden. Der Algorithmus wurde im Sommer 1962 oder möglicherweise einen Monat früher in der Produktion eingesetzt. Calcomp (Jim Newland und Calvin Heft) besaß Kopien der Programme, weil Unternehmen sie damals offen teilten. Als ich im Herbst 1962 nach Stanford zurückkehrte, spendete ich ein Exemplar an die Bibliothek des Stanford-Rechenzentrums. Auf der nationalen ACM-Tagung 1963 in Denver, Colorado, wurde eine Beschreibung der Strichzeichnungsroutine zur Präsentation angenommen. In jenem Jahr wurden nur die Tagesordnung der Referenten und Themen in einer Ausgabe der Mitteilungen der ACM veröffentlicht. Nach meinem Vortrag fragte jemand vom IBM Systems Journal, ob sie die Arbeit veröffentlichen dürften. Ich willigte gerne ein, und es wurde 1965 veröffentlicht.
Bresenhams Ansatz wurde erweitert, um Kreise, Ellipsen, kubische und quadratische Bézier-Kurven sowie native Anti-Aliasing-Versionen dieser Kurven zu erzeugen.
Die folgenden Konventionen werden verwendet:
Die obere linke Koordinate ist (0,0), so dass die Pixelkoordinaten nach rechts und unten wachsen (z. B. befindet sich das Pixel bei (7,4) direkt über dem Pixel bei (7,5)), während die untere rechte Koordinate (1,1) ist).
Die Mittelpunkte der Pixel haben ganzzahlige Koordinaten.
Die Endpunkte der Linie sind die Pixel bei (x_{0},y_{0}) und (x_{1},y_{1}) , wobei die erste Koordinate die Spalte und die zweite Koordinate die Zeile darstellt.
Der Algorithmus wird zunächst nur für das Oktant angezeigt, in dem das Segment nach unten und nach rechts ( x_{0}\leq x_{1} und y_{0}\leq y_{1} ) verläuft und