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

Pixel aus einer Matrix löschen

 

Patze

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.10.2015, 13:59     Titel: Pixel aus einer Matrix löschen
  Antworten mit Zitat      
Hi Mathlab Forum,
wir haben die Aufgabe bekommen ein Bild zu reparieren.
Dazu haben wir 2 Bilder bekommen von denen das eine das Orginal darstellt,
das andere aber beim Speichern beschädigt wurde.

Durch einen Fehler beim spaltenweisen Speichern des Bildes p01 Bild1.png sind ab
Element 5001 versehentlich 200 schwarze Pixel eingefuegt wurden (das Bild wurde
in den Double-Typ konvertiert, sodass 0 den niedrigsten und 1 den h¨ochsten Grau-
wert abbildet). Anschließend passierte leider ein weiterer Fehler beim spaltenweisen
Speichern, sodass ab Element 120001 versehentlich 442 weiße Pixel eingefuegt wur-
den. Somit hat das gespeicherte Bild 642 Pixel mehr als das originale Bild. Das
resultierende Bild wurde unter p01 Bild2.png gespeichert

Das Orginal ist in einer Matrix der Größe 321x481 gespeichert.
Das beschädigte Bild hat aber nun die Größe 321x483.

Nun wollte ich fragen ob es möglich ist zum Beispiel einzelne Pixel rauszulöschen,
und die anderen Pixel aufrücken zu lassen da sich das aufgrund des Einfügens der Pixel verschoben hat.

Beispiel: Normales Bild = 3x3 Matrix / Fehler Bild ist 3x4 Matrix

4 5 4 4 5 0 4
N = 4 3 4 F = 4 0 3 4
5 4 5 5 0 4 5
Nullen löschen und aufrücken:
4 5 4
F' = 4 3 4
5 4 5

Gibt es da i-wie eine Möglichkeit ohne die ganzen Elemente durchzugehen?

Grüße Fabian


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 30.10.2015, 14:37     Titel:
  Antworten mit Zitat      
Code:
a=magic(5)
b=a';
b=b(:)
b(2:6)=[];
b=reshape(b,size(a,1),[])';

sowas in der art? du kannst auch über zeile und spalte direkt ansprechen aber du musst aufpassen das die dimmensionen sitmmen. man kann immer nur eine ganze spalte/zeile in einer matrix löschen.
sonst kann auch ind2sub oder so hilfreich sein
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
baacon

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.11.2015, 17:30     Titel:
  Antworten mit Zitat      
Fabian hast du schon ne Lösung gefunden?

Bis morgen früh komme ich glaube nicht mehr auf so einen genialen Einfall Very Happy

Gruß Max
 
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.