Gedrehte Ausschnitte aus einem Foto mit vorgegebenem Seitenverhältnis erstellen

Wer häufig fotografiert, kennt das Problem:
Man hat einen Schnappschuss gemacht – und die Kamera dabei leicht zum Motiv gedreht gehalten.
MB-ImageCrop - schräge Aufnahme
Die meisten Grafikprogramme ermöglichen das Drehen von Bildern um einen beliebigen Winkel. Dabei muss aber der Winkel zuvor mühsam ausgerechnet werden.

Mit MB-ImageCrop erstellen Sie Ihr korrigiertes Bild interaktiv und kinderleicht – und mit dem gleichen Seitenverhältnis, wie das ursprüngliche Bild:

Laden Sie Ihr Bild in MB-ImageCrop und drehen Sie den Ausschnittsrahmen so, dass er parallel zu einer horizontalen oder vertikalen Linien ist (in diesem Fall dem Leuchtturm):

MB-ImageCrop - schräge Aufnahme - Rahmen drehen und positionieren

MB-ImageCrop maximiert Ihnen dann mit einem Mausklick diesen Ausschnitt, wobei das Seitenverhältnis des Rahmens erhalten bleibt.
Durch das Drehen gehen leider ein paar Bildanteile am Rand verloren. Zur besseren Orientierung blendet MB-ImageCrop diese Teile an.
Sie können den Rahmen dann noch pixelgenau mit der Maus verschieben, bis er exakt Ihren Vorstellungen entspricht.

MB-ImageCrop - schräge Aufnahme - Rahmen maximieren

Im Anschluss erstellen Sie mit einem weiteren Mausklick ein Bild aus dem festgelegten Ausschnitt:

MB-ImageCrop - schräge Aufnahme - optimierte Aufnahme

Der Leuchtturm (und die übrige Aufnahme) ist im Lot – und es besteht keine Verwechslungsgefahr mit dem Vetter in Pisa mehr 😉

Viel Spaß mit MB-ImageCrop!

Count down, timer and random dynamic text for Thunderbird signatures

Some weeks ago, when planing my this years holiday I searched for the possibility to create a signature for Thunderbird that contains a count down and a random dynamic text – without success.

So I decided to write the little external AddOn "MB-DynamicTextSignature for Thunderbird", that fills this gap – an AddOn, that allows to add

  •  timer
  • count down and
  • random dynamic text

to your HTML signature in Thunderbird.

Have a look at
https://www.markus-bader.de/MB-DynamicTextSignatureForThunderbird/onlinehelp.php
for a detailed description or download the installer from
https://www.markus-bader.de/MB-DynamicTextSignatureForThunderbird/MB-DynamicTextSignature4Thunderbird.zip

"MB-DynamicTextSignature for Thunderbird" is freeware for non commercial use and currently in beta state.

Perspektivische Vermessung von Abständen, Winkeln und Flächen in Fotos

Mit seinen Möglichkeiten, Strecken, Winkel, Kreise, Ellipse, Polygone, etc. zu vermessen, hat MB-Ruler Pro seine Fähigkeiten in den letzten Jahren in den unterschiedlichsten Anwendungsbereichen unter Beweis gestellt.
Eine große Einschränkung hatte MB-Ruler Pro hierbei allerdings: die Bilder, die vermessen werden sollten, mussten in einer senkrechten Projektion aufgenommen worden sein.

Das neue Mitglied der MB-Ruler-Familie: “MB-Ruler Pro – Perspektive” hebt diese Einschränkung auf. Mit “MB-Ruler Pro – Perspektive” ist es nunmehr möglich, Abstände, Winkel und Flächen auch in Fotografien zu bestimmen, in denen diese Aufgrund der Aufnahme-Perspektive verzerrt dargestellt sind.

Da ein Bild mehr sagt, als 1000 Worte, hier nun eine Beschreibung für die konkrete Anwendung:

(Diese Präsentation ist auch als PDF-Download verfügbar)
 

Aufgabenstellung (1):

Vermessung von Abständen und Flächen in der perspektivisch verzerrten Haus-Fassade

Voraussetzungen:

  • Fotografie des Hauses
  • Maße eines Referenz-Rechtecks

frontal_normal-k-l.jpg

Referenzrechteck festlegen

Das Referenzrechteck ist ein Rechteck, dessen Maße vor Ort mit Maßband o.ä gemessen wurden. Dieses liegt in der gleichen Ebene, in der die anderen Werte gemessen werden sollen.

frontal_normalmitreferenzrechteck-k-l.jpg

Ebene, in der Messungen vorgenommen werden können

Durch das Referenzrechteck ist die Ebene im Bild festgelegt, in der Messungen vorgenommen werden können – hier rot hervorgehoben. Für Objekte außerhalb dieser Ebene muss ein neues Referenzrechteck bestimmt werden.

frontal_rot-k-l.jpg

Beispiel einer Strecken-Messung (1.1)

Ergebnis der Messungen vor Ort

ergebnis_strecke1-l.jpg

Beispiel einer Strecken-Messung (1.2)

Ergebnis der Messungen vor Ort

vermessung_strecke_2-l.jpg
Beispiel einer Strecken-Messung (1.3)

Ergebnis der Messungen vor Ort

strecke_vermessung3-l.jpg

Beispiel einer Strecken-Messung (1.4)

Ergebnis der Messungen vor Ort

strecke_4_vermessung-l-2.jpg

Zusammenfassung (1)

  • Längen von Strecken, die nicht direkt zugänglich sind, können indirekt bestimmt werden
    – eine Fotografie genügt
  • Fehler der Strecken liegen unter 3%

Aber:

Was ist, falls man die Haus-Fassade aber nur von der Seite aufnehmen kann?

perspective_metrology_aber-l.jpg

Aufgabenstellung (2)

Vermessung von Abständen und Flächen in der perspektivisch mehrachsig verzerrten Haus-Fassade.

Voraussetzungen

  • Fotografie des Hauses
  • Maße eines Referenz-Rechtecks
perspective_metrology-mehrachsig-l.jpg

Referenzrechteck festlegen

Das Referenzrechteck ist ein Rechteck, dessen Maße vor Ort mit Maßband o.ä

gemessen wurden. Dieses liegt in der gleichen Ebene, in der die anderen Werte gemessen werden sollen

perspective_metrology-mehr2-l.jpg

Ebene, in der Messungen vorgenommen werden können

Durch das Referenzrechteck ist die Ebene im Bild festgelegt, in der Messungen vorgenommen werden können – hier rot hervorgehoben. Für Objekte außerhalb dieser Ebene muss ein neues Referenzrechteck bestimmt werden.

perspective_metrology-mehr-fach3-l.jpg

Beispiel einer Strecken-Messung (2.1)

Ergebnis der Messungen vor Ort

perspective_metrology-strecke_2-1-l.jpg

Beispiel einer Strecken-Messung (2.2)

Ergebnis der Messungen vor Ort

mb-rulerpro-strecke2-2-l.jpg

Beispiel einer Strecken-Messung (2.3)

Ergebnis der Messungen vor Ort

perspective_metrology-strecke2-3-l.jpg

Beispiel einer Strecken-Messung (2.4)

Ergebnis der Messungen vor Ort

perspective_metrologyo-strecke-2-4-l.jpg

 Zusammenfassung (2.5) 

  • Längen von Strecken, die nicht direkt zugänglich sind, können indirekt bestimmt werden – eine Fotografie genügt
    – auch bei schräger Aufnahmeperspektive
  • Fehler der Strecken liegen unter 3%
  • Die Fehler von Flächen liegen damit unter 5,9%

Beispiel einer Flächen-Messung

Die Messergebnisse der Fasadenfläche differieren aus den unterschiedlichen Blick-winkeln, liegen aber bei der erwarteten Fehlertoleranz von weniger als 6% im gleichenBereich.

perspective_metrology-flaeche2-l.jpg

Die Genauigkeit einer Messung hängt von verschiedenen Faktoren ab.

Um eine hohe Genauigkeit der Messwert zu gewährleisten, sind folgende Punkte zu vermeiden:

  • Bilder mit geringer Auflösung
  • Bildunschärfe im Bereich, in dem das Referenz-Rechteck festgelegt werden soll
  • sehr kleine Referenz-Rechtecke (in Pixel)
  • Lage des Referenz-Recktecks in von der Kamera weit entfernten Teilen des Bildes
  • kleine Brennweiten (Weitwinkel und Fischaugen) ==> Linseneffekte am Bildrand
 
Genug der Worte.
Auf der Homepage kann die Demoversion von “MB-Ruler Pro – Perspektive” herunter geladen werden.
Testen Sie “MB-Ruler Pro – Perspektive” und vermessen Sie mitgelieferten Beispiel-Bilder
 
 

 

 

 

     

Aufgabenstellung (1):

Vermessung von Abständen und Flächen in der perspektivisch verzerrten Haus-Fassade

Referenzrechteck festlegen

Das Referenzrechteck ist ein Rechteck, dessen Maße vor Ort mit Maßband o.ä gemessen wurden. Dieses liegt in der gleichen Ebene, in der die anderen Werte gemessen werden sollen.


freie Rad- und Wanderkarte als Google Earth Layer

OpenStreetMap ist inzwischen aller Munde.

Nach Anregungen aus dem Forum habe ich meinen Google Earth Layer für OSM-Daten dahingehend erweitert, dass dieser nun die

darstellen kann.

Falls Google Earth bereits installiert ist, genügt es, auf die beiden Links zu klicken, um die Karten als transparente Overlays  darzustellen.

Viel Spaß damit  🙂

Command Line Mailer for Thunderbird

Did you ever try to create email using the command line interface of Thunderbird?

From my point of view, this command line interface is somehow incomplete and not very smooth to use.
So I created a wrapper application with a clearer interface for Thunderbird to use it in an easier way.

Just download the freeware application (for non commercial use) from
https://www.markus-bader.de/MB-CMDMailerForThunderbird/index.php

Is is easy to use:

  • just define your mail message text in a separate html file
  • call MB-Command Line Mailer for Thunderbird with command line parameters (add multiple receivers, To, CC, BCC, add multiple attachments)  and
    press Send when Thunderbird has opened the message window

NMEA Simulations-Daten generieren mit MB-Ruler

Arbeitet man mit Programmen, die GPS-Daten verwenden – oder entwickelt diese – so kommt es häufig vor, dass eine Bewegung der GPS-Position einspielen möchte, während man sich aber nicht von der Stelle bewegt.Manche Programme stellen die Möglichkeit bereit, eine Simulationsdatei einzuspielen.

Ist diese Option aber nicht vorhanden – oder möchten Sie eine beliebige Bewegung einspielen – , so kann hierzu die aktuelle Version von MB-Ruler verwendet werden.

Hierzu erzeugt MB-Ruler – genau wie ein GPS-Empfänger – im Sekundentakt RMC und GGA Datensätze, die an einem COM-Port zur Verfügung gestellt werden. Die jeweilige Position wird über die Bewegung der Maus in einer OpenStreetMap-Karte ermittelt.

Eine genaue Beschreibung ist nach der Installation in der Hilfedatei von MB-Ruler zu finden.

Openstreetmap-Daten als Google Earth Layer

Google Earth, die virtuelle Weltkugel mit – regional abhängig – hochauflösenden Luftaufnahmen ist hinreichten bekannt.

Für OpenStreetMap trifft dies noch nicht ganz zu – zu unrecht.
OpenStreetMap ist ein Projekt, dass sich zum Ziel gesetzt hat, eine lizenzfreie Karte zu erstellen. Am besten zu vergleichen mit Open Source im Softwarebereich. Die Datenerfassung geschieht hierbei über die Aufzeichnung von GPS Logdateien, die dann über ein Webfrontend oder ein eigenständiges Programm nachdigitalisiert werden.
Die Datenmenge ist regional noch sehr unterschiedlich – aber stetig stark anwachsend.
Und wo sich mehrer begeisterte Mapper gefunden haben, sind die Daten detaillierter als alle anderen Karten, die mir bekannt sind. Karlsruhe – die entsprechende interaktive Karte ist am Ende dieses Artikels – ist hierfür ein exzellentes Beispiel.

Heute habe ich nun ein kleines Modul geschrieben, mit dessen Hilfe es möglich ist, die OpenStreetMap-Daten in Google Earth darzustellen:
Mein Google Earth Layer  stellt die OSM-Daten halbtransparent in Google Earth dar: OpenStreetMapLayer.kmz Google Earth

Noch ein Hinweis, für diejenigen, die mit OpenStreetMap kaum oder noch keinen Kontakt hatten:
Damit die Daten von OpenStreetMap frei bleiben, darf diese kombinierte Darstellung mit den lizenzpflichtigen Daten von Google Earth nicht dazu verwendet werden, Daten in OpenStreetMap zu ergänzen oder zu ändern!
Daten, die in OpenStreetMap eingegeben werden, müssen auf eigener Erfassung oder eigenem Wissen basieren!

Zum Schluss wie angekündigt eine der wohl detailliertesten Karten von Karlsruhe:

CC-BY-SA

Ansprechende Oberflächen auf mobilen Endgeräten

Mit den Bordmitteln von Windows Mobile ist es kaum möglich, ansprechende Oberflächen umzusetzen. Ergebnisse mit den Standard-GUI-Elementen haben Windows 2.0 Niveau.

Entwickler, die vor diesem Problem stehen, bekommen mit den AlphaMobileControls einen gutes Hilfsmittel an die Hand.

Die AlphaMobileControls sind eine Bibliothek von Komponenten die mittels Alpha-Blending dargestellt werden. Damit sind der Phantasie von Desingern fast keine Grenzen gesetzt – und die Entwickler können Sie umsetzen. Auf der Homepage der AlphaMobileControls finden sich zwei einfache Beispiel-Screenshots.

Beim Einsatz der Bibliothek bin ich auf zwei Probleme gestoßen:

  1. Die GetImageMethode hat unter Windows Mobile 5 einen Fehler beim Auslesen von Daten aus PNG-Bildern
    http://support.microsoft.com/?scid=kb%3Ben-us%3B923812&x=15&y=14
    PNG-Bilder, die als externe Dateien vorliegen, konnte ich bei meiner Entwicklung fehlerfrei darstellen. Sobald diese allerdings als Resource in die Applikation eingebettet, so tritt der im Microsoft-Artikel beschriebene Fehler (0×80004005) auf.
    Alternativ könnte man auf GIF-Dateien für die Darstellung wechseln – mit dem Nachteil, dass kein echtes Alpha-Blending möglich ist.
  2. Die AlphaMobileControls arbeiten bei der Darstellung mit Double-Buffering um ein Flackern zu verhindern.
    Diese benötigen bei einer Vollbild-Applikation von 320×240 Pixel ca. 600 KByte (bei 32 Bit Farbtiefe) – und zwar pro Dialog.
    Der Speicherbedarf für eine komplexere Applikation steigt damit ziemlich schnell an.

    Werden ausschließlich Forms gleicher Größe verwendet – und wird immer genau ein Dialog dargestellt – so reicht  im AlphaContainer die Variable _backBuffer statisch zu machen, so dass diese von allen Dialogen verwendet wird:

         ///

    Back buffer used for double buffering.


         private static Bitmap _backBuffer;

Die Ergebnisse lassen sich auf jeden Fall sehen!

Profiling im Compact Framework auf mobilen Endgeräten

PDAs und Smartphones sind von Natur aus hinsichtlich der Hardware schwach besetzt. Um so wichtiger ist es, bei der Entwicklung von Programmen, die Performance-Engpässe heraus zu finden. Durch den kostenlosen Profiler der Firma EQATEC ist nun ein echtes Profiling für Applikationen möglich, die für das Compact Framework (d.h. nur für managed code Module) entwickelt wurden.

Die Anwendung ist hierbei denkbar einfach.

  1. Binary (Applikation, DLL) wie gewohnt mit SharpDeveleop, Developer Studio, etc erstellen
  2. die Binaries mit dem EQATEC Profiler instrumentarisieren. Diese werden dabei 40-50% größer
  3. Programm auf das Mobile Endgerät kopieren und dort ausführen (das Programm läuft dabei 20-25% langsamer ab)
  4. nach Programmende wird eine XML-Datei mit den gemessenen Werte auf dem PDA abgelegt
  5. diese wieder auf den PC kopieren und das Ergebnis mit Hilfe des EQATEC Profiler Viewer analysieren

Einfach ein klasse Tool. – oder, um einen Entwickler von OpenNETCF zu zitieren: “Endlich!”

Wie so häufig beim Profilen war auch bei meinem ersten Echteinsatz der Bottle-Neck nicht an der Stelle, wo ich ihn vermutet hatte ;)