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

blaue Pixel in rote umwandeln

 

lina123

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.11.2010, 11:35     Titel: blaue Pixel in rote umwandeln
  Antworten mit Zitat      
Hallo!
in der FH haben wir eine Aufgabe bekommen, wo ich nicht weiter weiss.
Es sollen aus einem Bild die blauen Pixel in rote umgewandelt werden.
mit welchen Befehlen kann ich das machen oder wie gehe ich am besten vor? Grüße Lina


Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 08.11.2010, 12:18     Titel:
  Antworten mit Zitat      
Moin,

sollen nur die blauen Pixel in Rot umgewandelt werden - die roten werden dann Blau (also ein reiner Tausch) oder sollen die blauen Pixel rot werden und die roten erhalten bleiben?

Hubertus
Private Nachricht senden Benutzer-Profile anzeigen
 
lina123

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.11.2010, 17:03     Titel:
  Antworten mit Zitat      
danke für die schnelle Antwort. Die Pixel müssen nur getauscht werden.
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 08.11.2010, 17:43     Titel:
  Antworten mit Zitat      
Dann zerlegts Du das Bild in die Farbkanäle und tauscht R <>B. An die
Kanäle kommst Du über:

Code:
R=X(:,:,1); % für Rot, 2 für Grün und 3 für Blau


Dann mußt Du die Kanäle wieder zu einem Bild zusammenführen und Rot gegen Blau tauschen.

Code:
y(:,:,3)=R; %usw.


Viele Grüße

Hubertus
Private Nachricht senden Benutzer-Profile anzeigen
 
lina123

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.11.2010, 18:20     Titel:
  Antworten mit Zitat      
A=imread('Eine-Ladung-Buntes-a18927976.jpg');
subplot(2,2,1);
image(A)
grid on
B=A;
rot=uint32(B(:,:,1));
gruen=uint32(B(:,:,2));
blau=uint32(B(:,:,3));
B(:,:,1)=rot;
B(:,:,2)=gruen;
B(:,:,3)=rot;
subplot(2,2,2);
image(B)
grid on

danke! ich hab das mal so probiert u. die Farben ändern sich auch, nur es sind jetzt eher lila- oder Pinktöne und nicht rot. ichhoffe, ich stelle mich nicht zu blöd an.
Viele grüße
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 08.11.2010, 19:51     Titel:
  Antworten mit Zitat      
Du mußt nur den letzten Abschnitt wie folgt ändern:

Code:
B(:,:,3)=rot;  % Rot erhält den Blaukanal >>(:,:,3)=Blau
B(:,:,2)=gruen;
B(:,:,1)=blau; % Blau erhält den Rotkanal>> (:,:,1)=Rot


Alles Gute

Hubertus
Private Nachricht senden Benutzer-Profile anzeigen
 
lina123

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.11.2010, 07:41     Titel:
  Antworten mit Zitat      
Super hat geklappt:) ist es schwer das so zu schreiben dass die roten vielleicht doch drin bleiben? Also das die blauen Pixel zusätzlich rot werden? Danke für deine Hilfe!
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 09.11.2010, 07:54     Titel:
  Antworten mit Zitat      
Moin,

das habe ich mich auch gefragt. Ich habe dafür noch keine Lösung. Ich glaube nicht, dass man durch einfaches Ändern der Farbkanäle zur Lösung kommt. Die Pixel müssen ja ortsgebunden ihre Farbe ändern, ohne die roten Pixel zu beeinträchtigen. Es stehen ja nur die RGB-Kanäle zur Verfügung. Vielleicht hat ja hier im Forum einer eine Idee.

Einen schönen Tag

Hubertus
Private Nachricht senden Benutzer-Profile anzeigen
 
lina123

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.11.2010, 08:25     Titel:
  Antworten mit Zitat      
A=imread('Eine-Ladung-Buntes-a18927976.jpg');
subplot(2,2,1);
image(A)
grid on
B=A;
rot=uint32(B(:,:,1));
gruen=uint32(B(:,:,2));
blau=uint32(B(:,:,3));
B(:,:,1)=rot+uint32(B(:,:,3));
B(:,:,2)=gruen;
B(:,:,3)=rot-uint32(B(:,:,1));
subplot(2,2,2);
image(B)
grid on

so klappt es, nur das grün ist sehr grell... viell. hat noch jem. eine idee?
Danke Hubertus!
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 09.11.2010, 08:40     Titel:
  Antworten mit Zitat      
Hast Du tatsächlich reines Rot (255,0,0)?

Ich habe Dein Vorschlag auf eine Farbkarte mit Primär- und Komplementärfarben angewendet. Rot wird dabei zu Magenta. Das kannst Du mit >> impixelinfo kontrollieren. Wenn Du eine Vorlage aus Mischfarben hast, kann das vielleicht zu Irretation führen.

Hubertus
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.