WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Dünne Linie nach Bild Verkleinerung verloren

 

Localhorst
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 86
Anmeldedatum: 18.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.07.2010, 10:20     Titel: Dünne Linie nach Bild Verkleinerung verloren
  Antworten mit Zitat      
Hallo Forum,

OK, der Titel wirkt etwas wirr, aber mir ist nichts besseres kurzes eingefallen.

Es geht um zwei Linien, die in einem Binär Bild vorliegen. Die Linien sind genau 1 Pixel dick. Jeder Linienpixel berührt immer genau zwei Nachbar Pixel (außer die Enden natürlich...)


Dieses Binärbild soll nun um den Faktor 17 verkleinert werden. Wodurch natürlich die dünne Linie weg fällt. Habt ihr eine Idee wie ich die Linien in dem neuen rescalierten Bild wieder mit genau 1pixel dicke an die enstrechende Position bekommen?

(Idee: Keine Ahnung, ob die total unlogisch ist! Linie in original Bild auf 17 Pixel breite aufblasen, dann sollte in rescaled Bild eine 1Pixel Linie raus kommen. Da die genannte Bedingung: Jeder Pixel genau 2 Nachbarn aber unbedingt eingehalten werden muss, denke ich das es hier Probleme geben wird)

Über weitere Ideen, oder mögliche Problemdiskussionen würde ich mich sehr freuen!

Gruß
Localhorst
Private Nachricht senden Benutzer-Profile anzeigen


Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 29.07.2010, 10:33     Titel:
  Antworten mit Zitat      
Moin,

Deine Idee ist nicht verkehrt. Du mußt zunächst die Linie verbreitern und das Bild beschneiden - alles andere wäre nicht nachvollziehbar. Wenn Du das Bild zuerst verkleinerst ist natürlich die Linie weg. Es sei denn, Du verkleinerst das Bild und kopiert die breitere Linie wieder rein. Eine kleine Spielerei wäre vielleicht auch, die fehlende Linie dadurch zu erzeugen, die Pixel in diesem Bereich zu lokalisieren und zwangsweise auf einen anderen Wert zusetzen, also zu indizieren.

Viel Glück
Hubertus
Private Nachricht senden Benutzer-Profile anzeigen
 
aj.geissler
Forum-Guru

Forum-Guru



Beiträge: 251
Anmeldedatum: 26.11.07
Wohnort: Seeheim-Jugenheim
Version: ---
     Beitrag Verfasst am: 02.08.2010, 09:44     Titel:
  Antworten mit Zitat      
Hi,

hier noch eine andere Idee:
Wandle das Binärbild in eine Sparse-Matrix um (Linienpunkte durch Wert ungleich 0 dargestellt).
Neben den Pixelwerten 0 und 1 erhält man die Zeilen- und Spaltenpositionen der gesetzten Pixel.
Die Zeilen- und Spaltenpositionen werden skaliert, in diesem Fall durch 17 geteilt und danach vielleicht gerundet, so daß die neuen Positionen ebenfalls ganzzahlig sind.

Nun wird wieder eine Sparse-Matrix mit den neuen Positionen erzeugt.
Wichtig dabei ist, daß die neue Bildgröße zmax/17 Zeilen und smax/17 Spalten enthält (D.h. die Originalbildgröße / 17 (gerundet) sollte die Bildgröße des Ausgabebildes ergeben).

Grüße
Andreas
_________________

Andreas Geißler
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.