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

Imcontrast für mehrere Bilder

 

katja
Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 10.08.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.10.2020, 14:47     Titel: Imcontrast für mehrere Bilder
  Antworten mit Zitat      
Hallo zusammen,

Ich habe mit Hilfe eines Button eine Kontrastfunktion erstellt.

Sobald ich den Knopf gedrückt habe erscheint die Adjust Contrast GUI. Wenn ich nun über das Histogram klicke würde ich gern den Kontrast der Bilder sehen welche ich zuvor hochgeladen habe. Die Änderung soll aber in 4 neuen axes zu sehen sein.

Momentan wird nur das letzte Bild in axes4 verändert. Die kontraständerung passiert auch leider im gleichen Axes.

Hat jemand eine Idee wie da vorgehen könnte?

Grüße
Katja
Private Nachricht senden Benutzer-Profile anzeigen


theresa
Forum-Anfänger

Forum-Anfänger


Beiträge: 40
Anmeldedatum: 23.07.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.10.2020, 13:02     Titel:
  Antworten mit Zitat      
Hallo Leute,

ich habe das Problem fast lösen können, ich denke es fehlt nicht mehr so viel

Code:
h= figure;
imshow(real(X),'Border','tight');
imcontrast()


mit diesem Code kann ich mir schon einmal ein Bild plotten lassen.

Allerdings wird das Bild im figure viel zu schmal angezeigt. Selbst mit 'Border','tight' bleibt es so. Hat jmd eine Idee woran das liegen kann?

figure.JPG
 Beschreibung:

Download
 Dateiname:  figure.JPG
 Dateigröße:  29.61 KB
 Heruntergeladen:  147 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 29.10.2020, 13:30     Titel:
  Antworten mit Zitat      
Hallo,

mit
Code:
X = imread('pout.tif');

sieht das vernünftig aus.

Hat dein Bild vielleicht deutlich mehr Zeilen als Spalten?

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
 
theresa
Forum-Anfänger

Forum-Anfänger


Beiträge: 40
Anmeldedatum: 23.07.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.10.2020, 13:44     Titel:
  Antworten mit Zitat      
Hallo Harald,

das Problem ist hier wieder recht ähnlich zu imcontrast. Mein Datensatz hat sehr viele Koordinaten (mehr Zeilen als Spalten). Ich greife auch hier wieder auf das generierte Bild in einer axes zu... Es funktioniert auch soweit nur wird es eben extrem schmal dargestellt Confused

grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 29.10.2020, 13:59     Titel:
  Antworten mit Zitat      
Hallo,

vielleicht hilft dir dann das:
https://www.mathworks.com/matlabcen.....along-the-horizontal-axis

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
 
theresa
Forum-Anfänger

Forum-Anfänger


Beiträge: 40
Anmeldedatum: 23.07.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.10.2020, 14:03     Titel:
  Antworten mit Zitat      
Hallo,

ich habe das Problem beinahe gelöst. Ich hätte diesbezüglich noch die Frage ob es eine questionDialogBox mit 4 Fragen gibt? Geht das? Mit 3 AntwortButton geht es.

Bei 4 AntwortButton kommt die Meldung 'Error using questdlg Too many input arguments.'

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

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 29.10.2020, 15:01     Titel:
  Antworten mit Zitat      
Hallo,

aus der Hilfe geht m.M.n. recht deutlich hervor, dass entweder 2 oder 3 Buttons erlaubt sind.

Einen (allerdings nicht sonderlich gut bewerteten) Ansatz für mehr Buttons gibt es z.B. hier:
https://www.mathworks.com/matlabcen.....-questdlg?s_tid=srchtitle

Edit: Insbesondere für App Designer gibt es uiconfirm, das hier flexibler ist.

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
 
theresa
Forum-Anfänger

Forum-Anfänger


Beiträge: 40
Anmeldedatum: 23.07.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.10.2020, 15:42     Titel:
  Antworten mit Zitat      
hallo,

gibt es hierfür vllcht ne alternative Lösung? ich habe 4 Auswahlmöglichkeiten.

ich habe jetzt alle 4 bilder in einzelnen figures geöffnet. müsste aber jetzt für jedes figure imcontrast() seperat aufrufen.... Das heißt ich habe 4 figures und 4 mal das adjustContrast Fenster offen. Der Bildschirm ist entsprechend überladen mit 8 Fenstern.

Im Grunde steht meine function nur ist es nicht benutzerfreundlich.

Kann jmd helfen?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 29.10.2020, 16:55     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
gibt es hierfür vllcht ne alternative Lösung? ich habe 4 Auswahlmöglichkeiten.

Zu questdlg? Ja, ich habe dir ja zwei Alternativen geschrieben.

Zitat:
ich habe jetzt alle 4 bilder in einzelnen figures geöffnet. müsste aber jetzt für jedes figure imcontrast() seperat aufrufen.... Das heißt ich habe 4 figures und 4 mal das adjustContrast Fenster offen. Der Bildschirm ist entsprechend überladen mit 8 Fenstern.

imcontrast hat ja ein Rückgabeargument. Wie man da auf die Schnelle die benötigten Infos bekommt, ist die andere Frage.

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
 
theresa
Forum-Anfänger

Forum-Anfänger


Beiträge: 40
Anmeldedatum: 23.07.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.10.2020, 17:07     Titel:
  Antworten mit Zitat      
hallo,

GQD hab ich auch schon gesehen.. leider verstehe ich den code nicht Shocked
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 29.10.2020, 17:25     Titel:
  Antworten mit Zitat      
Hallo,

du brauchst den Code ja nicht im Detail zu verstehen, solange du ihn ausführen kannst - und dazu sollte das Beispiel in der Doku der Funktion hilfreich sein.

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
 
theresa
Forum-Anfänger

Forum-Anfänger


Beiträge: 40
Anmeldedatum: 23.07.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.10.2020, 18:19     Titel:
  Antworten mit Zitat      
muss ich den code dazu kopieren? Das hab ich schon probiert.. und das geht nicht

Es ist nicht möglich imcontrast gleichzeitig auf mehrere subplots anzuwenden?

grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 29.10.2020, 18:50     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
muss ich den code dazu kopieren?

Den Beitrag kopieren oder noch besser herunterladen, das enthaltene Beispiel kopieren und ausführen.

Zitat:
Das hab ich schon probiert.. und das geht nicht

Ich habe es auch probiert, und es geht.
Beschreibe bitte genau, am besten anhand von Code, was du machst, und vor allem: schreibe dazu, was nicht funktioniert - und das bitte immer. Wenn man erst nachfragen muss und du das vielleicht nochmal suchen und dann antworten musst, ist das für uns beide nicht effizient.

Zitat:
Es ist nicht möglich imcontrast gleichzeitig auf mehrere subplots anzuwenden?

Meines Wissens nein. Wenn es möglich wäre, würde es wohl ein entsprechendes Beispiel in der Doku geben. Vielleicht helfen andere Funktionen wie imadjust weiter.

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
 
theresa
Forum-Anfänger

Forum-Anfänger


Beiträge: 40
Anmeldedatum: 23.07.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.10.2020, 22:02     Titel:
  Antworten mit Zitat      
Zitat:

Den Beitrag kopieren oder noch besser herunterladen, das enthaltene Beispiel kopieren und ausführen.


kannst du das einfach mal kurz hier reinstellen wie das dann aussieht? Ich habe den code jetzt kopiert und mein button entsprechend der Funktion benannt, sodass alles passt. Irgendwas mache ich falsch Confused


Mich würde es einfach interessieren.

Mein Problem habe ich übrigens mit einem verschachtelten switch case gelöst... ist zwar nicht so elegant aber es funktioniert.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

den Teil in ein Editor-Fenster kopieren:
Code:
function choise=bttnChoiseDialog(dlgOptions, dlgTitle, defOption, qStr, bttnsOredring)
%% bttnChoiseDialog
% Create and open a button dialog box with many buttons.
%
%% Syntax
%  bttnChoiseDialog(dlgOptions);
%  bttnChoiseDialog(dlgOptions, dlgTitle);
%  bttnChoiseDialog(dlgOptions, dlgTitle, defOption);
%  bttnChoiseDialog(dlgOptions,dlgTitle, defOption, qStr);
%  bttnChoiseDialog(dlgOptions, dlgTitle, defOption, qStr, bttnsOredring);
%
%% Description
% Create and open a push button dialog box, which is a generalized version of a question
%  dialog box (called by questdlg). User can enter any number of input options (buttons)
%  for one to choose from, as opposed to questdlg, where only 2 or 3 options are
%  supported. User can also set the buttons ordering (columns, rows). Dialog will attempt
%  to set parameters to optimally present button text.
%
%% Input arguments (defaults exist):
% dlgOptions- a cell array of strings, each of which is an option proposed to user as a
%     push button, for selection from.
% dlgTitle- a 'title' displayed in the figure's title bar. Expected to be a string. A
%     space by default.
% defOption- a default preset option, used if user makes no choise, and closes dilaog. Can
%     be either a string- one of the dlgOptions cell array elements, or an integer- the
%     dlgOptions elements index.
% qStr- a string of the dialog question, instructing the user to choose among his options.
%     Expected to be a sting. Empty by default.
% bttnsOredring- an 2X1 array of integers, describing the number of button rows and
%     columns. Default value exist. Similar to format used in subplot.
%
%% Output arguments
%   choise- index ot the user chosen (clicked) button.
%
%% Issues & Comments
% Choosing the deafult button is achived by clicking it (naturally) or closing figure. If
%  functione wasn't exited properly, figure should be closed via inline delete(figH)
%  command. Clicking figure "X" mark on top left corner will fail, as it's overriden.
%
%% Example
% inputOptions={'MATLAB', '(matrix laboratory)', 'is a numerical', 'computing',...
%  'environment and 4G PL'};
%  defSelection=inputOptions{3};
% iSel=bttnChoiseDialog(inputOptions, 'Demonstarte bttnChoiseDialog', defSelection,...
%  'What is your preferred option?');
% fprintf( 'User selection "%s"\n', inputOptions{iSel});
%
%% See also
%  - questdlg
%
%% Revision history
% First version: Nikolay S. 2012-06-06.
% Last update:   Nikolay S. 2013-01-02.
%
% *List of Changes:*
% -2013-01-02- An ossue reported by Dan K and Louis Vallance was fixed,
%   using Dan K proposal.
% -2012-06-21- changed elements 'Units' to 'characters' instead of 'normalized' to
%  quarantee proper font size, cross platform. Changes root units back and foprth during
%  run time.
%% Default params
if nargout>1
  error('MATLAB:bttnChoiseDialog:WrongNumberOutputs',...
     'Wrong number of output arguments for QUESTDLG');
end
if nargin<1
  error('MATLAB:bttnChoiseDialog:WrongNumberInputs',...
     'Wrong number of input arguments for bttnChoiseDialog');
end
if nargin==1
   dlgTitle=' ';
end
if nargin<=2
   defOption=dlgOptions{1};
end
if nargin<=3
   qStr=[];
   titleSps=0;
end
if nargin<=4
   bttnsOredring=[];
end
if nargin>5
  error('MATLAB:bttnChoiseDialog:TooManyInputs', 'Too many input arguments');
end
% internal params
bttnFontSize=0.7;
btntxtH=2;
%% Buttons ordering definition
nButtons=length(dlgOptions);
nLongestOption=max( cellfun(@length, dlgOptions) );
% Set buttons ordering- N Columns and N Rows
if isempty (bttnsOredring)
   bttnsOredring=zeros(1, 2);
   bttnsOredring(1)=ceil( sqrt(nButtons) );
   bttnsOredring(2)=ceil( nButtons/bttnsOredring(1) );  
end
if bttnsOredring(1)>1 && bttnsOredring(1)<=nButtons
   bttnRows=bttnsOredring(1);
   bttnCols=ceil( nButtons/bttnRows );
else
   if bttnsOredring(2)>1 && bttnsOredring(2)<=nButtons
      bttnCols=bttnsOredring(2);
   else
      bttnCols=floor(sqrt(nButtons));
   end
   bttnRows=ceil( nButtons/bttnCols );
end
if exist('titleSps', 'var')~=1
   titleSps=1.25*btntxtH;  % Title gets more space then buttons.
end
spaceH=0.5;
spaceW=2;
%% Dialog Figure definition
% Open a figure about screen center
menuFigH=figure('Units', 'normalized', 'Position', [.5, .5, .1, .1], 'MenuBar', 'none',...
   'NumberTitle', 'off', 'Name', dlgTitle, 'CloseRequestFcn', 'uiresume(gcbf)');
% 'CloseRequestFcn' override figure closing
% make sure figure form allows good text representation Get screen resolution in
% characters
getRootUnits= get(0, 'Units');
set(0, 'Units', 'characters');
ScreenSize=get(0, 'ScreenSize'); % In characters
set(0, 'Units', getRootUnits);
set(menuFigH, 'Units', 'characters');
FigPos=get(menuFigH, 'Position');
figH=titleSps+(btntxtH+spaceH)*bttnRows+spaceH;
figW=max( spaceW+btntxtH*bttnCols*(nLongestOption+spaceW),...
   titleSps*length(qStr)+2*spaceW );
if figW > ScreenSize(3)
   figW=ScreenSize(3);
   % raise some flag, figure Width will be too small, use textwrap...
end
if figH > ScreenSize(4)
   figH=ScreenSize(4);
   % raise some flag, figure Height will be too small
end
FigL=FigPos(1)-figW/2;
FigB=FigPos(2)-figH/2;
FigPos=[FigL, FigB, figW, figH];  % [left bottom width height]
set(menuFigH, 'Position', FigPos);
%% Button group definition
iDefOption=1;
buttonGroup = uibuttongroup('Parent', menuFigH, 'Position', [0 0 1 1]);
if exist('defOption', 'var')==1 && ~isempty(defOption)
   if ischar(defOption)
      iDefOption=strcmpi(defOption, dlgOptions);
   elseif isnumeric(defOption) && defOption>1 && defOption<nButtons
      iDefOption=defOption; % defOption is an index of the default option
   end
end
%% Question definition
if titleSps>0
   titleH=uicontrol( buttonGroup, 'Style', 'text', 'String', qStr,...
      'FontUnits', 'normalized',  'FontSize', bttnFontSize,...
      'HorizontalAlignment', 'center', 'Units', 'characters',...
      'Position', [spaceW , figH-titleSps, figW-2*spaceW, titleSps] );
end
%% Radio buttons definition
bttnH=max(1, (figH-titleSps-spaceH)/bttnRows-spaceH);
interBttnStpH=bttnH+spaceH;
bttnW=nLongestOption*btntxtH;
interBttnStpW=max((figW-spaceW)/(bttnCols), bttnW+spaceW);
buttnHndl=zeros(nButtons, 1);
for iBttn=1:nButtons
   [iRow, iCol]=ind2sub([bttnRows, bttnCols],iBttn);
   currBttnHeigth=figH-titleSps-iRow*interBttnStpH;
   currBttnLeft=(iCol-1)*interBttnStpW+spaceW+(interBttnStpW-bttnW-spaceW)/2;
   buttnHndl(iBttn) = uicontrol( buttonGroup, 'Style', 'pushbutton',...
      'FontUnits', 'normalized', 'Units', 'characters', 'FontSize', bttnFontSize,...
      'String', dlgOptions{iBttn}, 'Callback', @my_bttnCallBack,...
      'Position', [currBttnLeft , currBttnHeigth, bttnW, bttnH] );
end
set(buttnHndl(iDefOption), 'Value', 1); % set default option
set(cat(1, buttnHndl, titleH, buttonGroup),'Units', 'normalized')
uiwait(menuFigH); % wait untill user makes his choise, or closes figure
% choise=find( cell2mat( get(buttnHndl, 'Value') ) );
delete(menuFigH);
function my_bttnCallBack(hObject, ~)
choise=find(strcmp(dlgOptions,get(hObject,'String')));
uiresume(gcbf)
end
end


Speichern unter bttnChoiseDialog.m.

Beispiel-Aufruf mit:
Code:
inputOptions={'MATLAB', '(matrix laboratory)', 'is a numerical', 'computing',...
 'environment and 4G PL'};
defSelection=inputOptions{3};
iSel=bttnChoiseDialog(inputOptions, 'Demonstarte bttnChoiseDialog', defSelection,...
  'What is your preferred option?');
fprintf( 'User selection "%s"\n', inputOptions{iSel});


Zitat:
und mein button entsprechend der Funktion benannt

Was soll das denn bedeuten?!

Zitat:
Irgendwas mache ich falsch Confused

Da du nicht schreibst, was du machst, kann ich dir auch nicht sagen, was du falsch machst. Wie im vorherigen Beitrag geschrieben:
Zitat:
Beschreibe bitte genau, am besten anhand von Code, was du machst, und vor allem: schreibe dazu, was nicht funktioniert - und das bitte immer.

Sonst ist es mir leider nicht möglich, dir zu helfen.

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

Gehe zu Seite 1, 2  Weiter

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.