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

farbige Streifenbilder, die verändert werden können

 

jpg
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 05.11.22
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.12.2022, 19:51     Titel: farbige Streifenbilder, die verändert werden können
  Antworten mit Zitat      
Hallo,

in meinem Projekt möchte ich Streifenbilder erstellen, die ich farblich verändern kann.
Ob die Streifen horizontal oder vertikal verlaufen ist mir nicht wichtig.
Bisher habe ich ein schwarz-weiß-Streifenbild erstellen können.
Jedoch keins mit z.B. schwarz-blau oder schwarz-grün.
Die Farben möchte ich gerne separat einstellen können.

Das ist mein bisheriger Code:


Code:
hoehe = 100;
breite = 200;
pixelbreite = 3;

A = zeros(hoehe,breite);

for i = 1:breite

     if (mod(i,2) == 1)
         A(1:hoehe,i) = 1;

     else

         A(1:hoehe,i) = 0;

     end

 end

imshow(A);




Alle Zahlen die 1 sind sollen zum Beispiel in einer Farbe dargestellt werden.


Ich freue mich auf eure Beitrage!

SchwarzeStreifen.m
 Beschreibung:

Download
 Dateiname:  SchwarzeStreifen.m
 Dateigröße:  227 Bytes
 Heruntergeladen:  172 mal
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.487
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 16.12.2022, 12:00     Titel:
  Antworten mit Zitat      
Hallo,

du kannst mit Integern zwischen 0 und 255 arbeiten und dann die colormap mit RGB-Werten anpassen.

Die Stärke von MATLAB ist Vektorisierung, das sollte man ausnutzen. Die for-Schleife kann in einer Zeile zusammengefasst werden:

Code:
A = zeros(hoehe,breite);
A(:,1:2:end) = 1;
imshow(A*255, [0,0,0; 0,1,0]); % schwarz-grün


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
jpg
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 05.11.22
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.12.2022, 19:36     Titel:
  Antworten mit Zitat      
Hallo Harad,

das hat sehr gut funktioniert vielen Dank dafür.

Jetzt möchte ich gerne die Breite der Streifen noch anpassen.
Zum Beispiel sollen es x schwarze Streifen und x weisse Streifen sich nebeneinander befinden.
Hast du auch für dafür eine Idee? Bei meinen Ansätzen komme ich zu keiner Lösung.

Viele Grüße
jpg
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.487
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.12.2022, 21:46     Titel:
  Antworten mit Zitat      
Hallo,

ich würde zwei Streifen (einmal mit 0, einmal mit 1) generieren, nebeneinanderhängen, und dann mit repmat Kopien erstellen. Falls es nicht aufgeht, die Anzahl der benötigten Kopien aufrunden und dann den überzähligen Teil abschneiden.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
jpg
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 05.11.22
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.12.2022, 16:23     Titel:
  Antworten mit Zitat      
Hallo,

die Idee mit repmat gefällt mir. Nur schaff ich es nicht meine x Reihen beliebig zu programmieren.

Das ist mein Code:
Code:

A = [0 , 0 , 1 , 1 ; 0 , 0 , 1 , 1];

C = repmat (A,40);
 
imshow(C*255, [0,0,1; 1,0,0] );


Die Matrix A möchte ich mit Nullen und einsen variabel einstellen.

Wenn ich beispielsweise einen farbigen Streifen mit drei Nullen stehen haben möchte und einen farbigen Streifen mit drei einsen, muss ich bei meiner Matrix A immer stark eingreifen, also die Zahlen mit viel Mühe eintippen.
Am liebsten möchte ich eine Variable für die "Streifenbreite" eingeben und schnell eingreifen zu können.

Denn am Ende soll die Streifenbreite vielleicht auf 20 steigen oder höher.

Viele Grüße

jpg

test.m
 Beschreibung:

Download
 Dateiname:  test.m
 Dateigröße:  96 Bytes
 Heruntergeladen:  176 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.487
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 28.12.2022, 10:07     Titel:
  Antworten mit Zitat      
Hallo,

du kannst die Matrix A mit zeros und ones erstellen, z.B.

Code:
A = [zeros(hoehe, x), ones(hoehe, x)];


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
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.