vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Distanz messen 
Autor: dm1485
Datum: 19.03.18 12:01

Hallo zusammen,

ich habe folgendes Problem...

Ich lade ein x-beliebiges Bild in eine PictureBox, die ihre Größe je nach Bildschirmgröße anpasst.
Das geladene Bild kann verschiedene Auflösungen haben. Einstellung ist ZOOM

Nun möchte ich das geladene Bild vermessen. Sprich Messen zwischen zwei Punkten.
Auf dem Bild ist z.B. eine Hand abgebildet. Nun möchte ich die Länge der Hand ausmessen.
Ich bekomme aber einfach nur die Richtige Strecke in CM raus.

Hier ein Beispiel:

PictureBox Breite x Höhe: 294x715
Bild Breite x Höhe: 1084x3307
Tatsächliche Größe vom Bild in PictureBox : 264x715 (es wird schmäler durch die Zoom Einstellung)

Bildschirmauflösung: 1920x1200


Laut meiner Messung bekomme ich 11.33cm raus. Tatsächlich müssten es aber ca. 25.6cm sein.

Dim dpc As Double = Me.CreateGraphics().DpiX / 2.54
Dim lineLengthInPixels As Double = Math.Sqrt(Math.Pow(x2 - x1, 2) + Math.Pow(y2 _
  - y1, 2))
linieInCM = lineLengthInPixels / dpc
An irgendetwas denke ich nicht... Nur was??

Ich hoffe es kann mir jemand helfen.

Gruß
Dominik
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Distanz messen 
Autor: Kuno60
Datum: 19.03.18 15:44

Hallo,

ich weiß nicht was du wirklich messen willst:

- die angezeigte Größe auf dem Bildschirm (soll mit Lineal übereinstimmen)
Dazu musst du den genauen DPI-Wert des Bildschirms ermitteln, der nicht immer 96 ist!
(bei mir: 91,44 DPI, entspricht 36 Pixel pro Zentimeter)

- die Originalgröße des Bildes
Dazu musst du die gemessenen Werte auf die volle Bildgröße umrechnen (Zoomfaktor).

- die Größe des originalen Objektes (z.B. bei einem eingescannten Bild).
Dazu musst du auch den DPI-Wert des Bildes berücksichtigen.

Nach der Zoomberechnung:
Dim ratio = Math.Min(PictureBox.Width / Bild.Width, PictureBox.Height / _
  Bild.Height)
Dim Bildbreite = Bild.Width * ratio
Dim Bildhöhe = Bild.Height * ratio
und diesen Größen:
PictureBox Breite x Höhe: 294 x 715
Bild Breite x Höhe: 1084 x 3307
müsste das tatsächliche Bild in der PictureBox 234,37 x 715 groß sein.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Distanz messen 
Autor: Manfred X
Datum: 19.03.18 16:45

Hallo!

In einer Fotografie/Zeichnung sind "absolute" "physikalische" Abstände
(MKS-System) nicht definiert.
Eindeutig bestimmen kann man nur relative Distanzen innerhalb des Bildes.

Einen Überblick über die Parameter der Aufbereitung von digitalen Bilddaten
für ein "Gerät" hat Kuno60 bereits gegeben.

Bei der Abbildung von dreidimensionalen Objekten kommen weitere Faktoren ins
Spiel.
Bei zweidimensionalen Graphiken (z.B. Diagrammen) könntest Du eine Referenz-Linie
einbringen, deren Länge einem bestimmten "realen" Abstandswert entspricht.

Übrigens:
Du verwendest offenbar keinen Zoom, sondern Stretch, d.h. die Seitenverhältnisse
des Bildes ändern sich bei der Anzeige (Anpassung an Picturebox) - vgl. Kuno60.

Beitrag wurde zuletzt am 19.03.18 um 16:52:04 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel