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

Raster über Bild legen

 

beginna
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 20.05.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.05.2015, 14:59     Titel: Raster über Bild legen
  Antworten mit Zitat      
Hallo,

ich bin seit letzter Woche als HiWi an der Uni beschäftigt und bin dort nun mit Matlab "konfrontiert".
Ich soll eine Möglichkeit finden, ein Raster über ein eingelesenes Bild zu legen und die Zellen (am besten sogar die Schnittpunkte der Linien) von 1 bis n zu beschriften.

Zuerst habe ich das mit grid probiert, jedoch kann man dort wohl keine Beschriftung hinzufügen.

Außerdem hab ich ein Raster mit Zahlenanordnung von 1 bis 100 gefunden. Das habe ich versucht über das Foto zu legen. Das Problem ist allerdings, dass es sich nicht an die Größe des Fotos anpasst.

Code:
clear all
bild = imread('bild.jpg');
figure;
imagesc(bild);
I = magic(10);
[X Y]=meshgrid(1:10,1:10);
string = mat2cell(num2str([1:10*10]'),ones(10*10,1));
hold on;
text(Y(:)-.5,X(:)+.25,string,'HorizontalAlignment','left')
grid = .5:10:10.5;
grid1 = [grid;grid];
grid2 = repmat([.5;10.5],1,length(grid));
plot(grid1,grid2,'k');
plot(grid2,grid1,'k');


Kann man entweder diesen Code so ändern, dass er sich an die Größe des eingelesenen Bildes anpasst? Oder gibt es eine andere Möglichkeit?


Gruß
beginna

Zuletzt bearbeitet von beginna am 20.05.2015, 15:46, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 20.05.2015, 15:30     Titel:
  Antworten mit Zitat      
hallo.
clear all ist nicht hilfreich.... warum wurde hier im forum schon oft besprochen.
den befehl grid als variablen namen zu verwenden ist denkbar ungünstig und sollte vermieden werden.
die größe des bildest kannst du doch mittels size bestimmen nach dem einlesen oder? ich würde mal versuchen mittels linspace die xtick und yticks zu erstellen damit man 100 hat für deine linien und dan grid benutzen. danach wie bei dir halt den text einfügen. oder ich könnte mir auch vorstellen die linien alle manuell einzumalen. dazu natürlich auch der weg über size und linspace.
soll das raster immer gleich viele linen haben oder soll der abstand immer gleich sein?
sind die ersten linen am rand oder nur auf dem bild?
da sind noch einige fragen offen.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
beginna
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 20.05.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.05.2015, 15:37     Titel:
  Antworten mit Zitat      
Vielen Dank schonmal, werde das gleich mal ausprobieren.

Also das Raster soll je nach Bild unterschiedlich viele Linien haben. Das kann bzw. soll jedoch manuell für jedes Bild eingestellt werden. Das gleiche gilt dann auch für den Abstand.
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 20.05.2015, 16:15     Titel:
  Antworten mit Zitat      
die anzahl der linien und ihr abstand sind nicht 2 sachen wenn die gesamtbreite schon durch das bild definiert ist. man sollte also nur eines wählen können. bei linspace braucht du die anzahl der linien. wenn du ihren abstand hast kannst du dir linspace spaaren.
grüße
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
beginna
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 20.05.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.05.2015, 10:09     Titel:
  Antworten mit Zitat      
Habe mal ein bisschen rumprobiert.

Code:

bild = imread('bild.jpg');
figure;
imagesc(bild);

sz = size(bild);

[X Y] = meshgrid(1:10, 1:10);
string = mat2cell(num2str([1:10*10]'),ones(10*10,1));
hold on;
text(Y(:)-.5,X(:)+50.25, string,'left');


set(gca, 'XTick', [1:40:400]);
set(gca, 'YTick', [1:57.3:573]);
grid on;


So kann ich zumindest das grid dann schonmal einstellen, die Werte 400 und 573 habe ich von size(bild). Gibt es eine Möglichkeit diese Werte aus der Variable direkt zu übernehmen für das set(gca, ...)?
Mit dem Beschriften bin ich jedoch nicht weiter. Mit der +50.25 kann man ja den Startpunkt des meshgrid(?) verschieben, aber kann man auch die Abstände der Zahlen ändern?
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.