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

Schnelles IMSHOW?

 

ImageQuick

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.07.2011, 10:24     Titel: Schnelles IMSHOW?
  Antworten mit Zitat      
Hallo,

ich habe ein Programm zur Segmentierung von Videos geschrieben (GUI). Leider ist die Anzeige noch etwas zu langsam. Ich verwende 'imshow'. Gibt es eine schnellere Methode um ein Bild (uint8, Grayscale-Bild) anzuzeigen?

Danke!


Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.07.2011, 10:37     Titel:
  Antworten mit Zitat      
Hi,
du könntest direkt die cdata des Handles von deinem image ändern, dass sollte schneller sein:


Code:

A=uint8(255*rand(100,100))
hA=imshow(A);
B=uint8(255*rand(100,100))
set(hA,'cdata',B);

 


Also einmal imshow benutzen und danach nur die cdata ändern.
 
ImageQuick

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.07.2011, 11:31     Titel:
  Antworten mit Zitat      
Danke, aber in GUI hat das nicht funktioniert...

??? Subscript indices must either be real positive integers or logicals.
Error in ==> fig>pushbutton8_Callback at 310
set(hA,'cdata',msk);

Was kann man da machen?
 
Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.07.2011, 11:43     Titel:
  Antworten mit Zitat      
Stimmt, in der GUI musst du das anders machen.


wenn du eine axes per drag and drop hinzufügst, heißt die standardmäßig handles.axes1.

der imshow Befehl sollte dann etwa so aussehen:

Code:

handles.image1=imshow(A,'parent',handles.axes1);
% und zum ändern dann
set(handles.image1,'cdata',B);

 
 
ImageQuick

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.07.2011, 12:08     Titel:
  Antworten mit Zitat      
Ich bekomme gleichen Fehler wie vorhin... woran kann das liegen? Danke!
 
ImageQuick

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.07.2011, 12:10     Titel:
  Antworten mit Zitat      
??? Subscript indices must either be real positive integers or logicals.

Ich übergebe, ein Bildarray in Form von uint8... konnte das die Fehlerursache sein?
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 28.07.2011, 12:36     Titel:
  Antworten mit Zitat      
Hallo
Nein daran liegt es nicht.

du muss mehr entsprechenden Code posten,
der Fehler deutet mehr an die Stellen, wo Indizien verwendet würden.
Matrixzuweisungen usw.
Private Nachricht senden Benutzer-Profile anzeigen
 
ImageQuick

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.07.2011, 13:38     Titel:
  Antworten mit Zitat      
Was mir aufgefallen ist, die Klammer nach
Code:
ist von MatLab unterstrichen und wenn ich mit dem Maus drüberfahre, dann zeigt mir MatLab ein Hinweis: The operation or expression <Indexing> has no evident effect.

Was kann das bedeuten?

Ansonsten rufe ich vor der Schleife
handles.Image1 =
und in der For-Schleife den Code
set(...
und übergebe ich ein 2D Array vom Typ uint8.

Wenn ich imshow verwende, dann funktioniert es.
 
Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.07.2011, 13:51     Titel:
  Antworten mit Zitat      
hast du zufällig eine Variable die set heißt?
die eventuell umbenennen.

Ansonsten, mehr code posten.
 
ImageQuick

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.07.2011, 14:01     Titel:
  Antworten mit Zitat      
Ich habe den Fehler gefunden. Das Problem war, dass ich im Quellcode auch eine Variable angelegt habe mit dem Namen set... und MatLab hat "set" als Variable interpretiert.

DANKE FUNKTIONIERT!!!
 
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 - 2025 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.