Pouvons-nous montrer une image dans sa taille d'origine dans Matlab? P>
À l'heure actuelle, lorsque nous montrons, il est équipé de la taille de la fenêtre d'image. Cependant, je veux montrer l'image dans sa taille d'origine. Lorsque l'image est de plus grande taille, une barre de défilement doit apparaître dans la fenêtre d'image. Cela permettrait à l'utilisateur de voir l'image dans sa taille d'origine. p>
Des idées sur la façon d'y parvenir? Est-ce possible? P>
6 Réponses :
Je crois ce que vous recherchez est le IMTOOL < / a> utilitaire (qui fait partie du Boîte à outils de traitement d'image ). C'est une interface graphique MATLAB qui vous permet de visualiser des images dans leur taille d'origine (grossissement à 100%) avec des curseurs horizontaux et verticaux. P>
La solution ci-dessus affiche votre image dans une nouvelle fenêtre Figure (l'interface graphique IMTOOL). Si vous ne voulez pas que l'image figurant dans une nouvelle fenêtre, mais que vous souhaitez plutôt régler sa taille dans une fenêtre à vous, ce sera plus difficile. Pour ajuster la taille de l'image, que je suppose que vous avez affiché sur un ensemble d'axes à l'aide de image commande, vous devrez régler un certain nombre de propriétés d'axes pour les axes contenant l'image. Ce qui suit sont les propriétés dont vous finirez probablement de modifier: p>
Après avoir obtenu la taille et la mise à l'échelle de l'image pour afficher votre choix, les parties de l'image pouvaient être en dehors de la zone de la fenêtre Figure. Malheureusement, les curseurs horizontaux et verticaux ne seront pas ajoutés automatiquement. Vous devrez créer ce curseur vous commande vous-même à l'aide du uicontrol a > fonction. Vous devrez écrire les fonctions de rappel pour les contrôles de curseur de manière à déplacer les axes autour de la fenêtre. P>
Si vous choisissez de vous aventurer dans le chemin ci-dessus, voici quelques liens vers des didacticiels de conception d'interface graphique qui peuvent vous aider: Un tutoriel de curseur sur Blinkdagger , Un article de blog de Doug Hull , et une vidéo De Doug sur les bases du guide . P>
'unités' code>: Ceci peut être réglé sur "pouces ' code>, " centimètres' code> ou "pixels ' code>, par exemple. li>
'position' code>: Ceci contrôle où les axes sont placés dans la fenêtre Figure, dans des unités régies par la propriété 'Unités' CODE>. LI>
'dataaspectratio' / 'intrigantboxaspectratio' code>: Celles-ci contrôlent la mise à l'échelle relative des axes et de la boîte de tracé environnante. Li>
'xlim' / 'ylim' code>: les valeurs minimales et maximales des axes. LI>
ul>
Il devrait peut-être signalé que IMTool est dans la boîte à outils de traitement d'image.
Le curseur MATLAB a un problème qu'il incendie du rappel uniquement sur MouseUp et non sur MouseMove, la mise en œuvre de MATLAB donc pure serait toujours étrange. P>
Better Way - Go pour Java à Matlab. Donc, vous n'avez pas à ré-implémenter des logiques de défilement entières. Vous pouvez mettre un composant GUI swing Java à l'intérieur de la fenêtre Matlab, ce n'est pas du tout difficile. P>
Spécifiquement, vous devez utiliser Swing Il existe des tonnes d'exemples sur la bande sur la manière d'obtenir une image dans une vitre de défilement, viennent de naviguer sur JSCrollPane CODE> classe. Avec MATLAB Javacomponent () Code> Fonction Vous pouvez la mettre à l'intérieur de la fenêtre Matlab. P>
jscrollpane image code>. Vous pouvez utiliser des classes Java à l'intérieur MATLAB avec la syntaxe MATLAB habituelle (pas besoin de Nouveau code> mot-clé, ECC.) P>
FYI, il y a un moyen d'avoir un curseur MATLAB exécuter un rappel lors de la traînée, adressée ici: dans matlab, comment pouvez-vous avoir un rappel Exécuter pendant qu'un curseur est en train d'être traîné?
essayer: figure, imshow (votre_Image), image axe Cela modifie l'axe d'image sur la taille d'origine p>
Ce code du forum de réponses de Matlab crée une fenêtre dans laquelle l'image est affichée à la résolution natif (100%), et donne également une fenêtre "Navigation" indiquant où votre section vue de l'image (dans la fenêtre principale) s'intègre dans la image entière. ( Forum Post Link ) P> P>
drôle, personne ici n'a mentionné TRAWESIZE CODE> < / a> pourtant: p>
TRAWESIZE (FIG) CODE> Ajuste la taille d'affichage telle que chaque pixel d'image couvre un pixel d'écran. Si vous ne spécifiez pas de figure, trousize code> ajuste la taille d'affichage de la figure actuelle. P>
blockQuote>
Treillis sonne exactement ce que les gens veulent, sauf dans la pratique, j'ai trouvé que cela n'a pas fonctionné. C'est ce que Ce fil de forum est Tout sur, et pourquoi j'ai posté la solution qui a fonctionné pour moi.
Il y a 3 choses à prendre en charge afin d'afficher l'image dans sa taille d'origine (1: 1):
Une fois que tout cela est défini en fonction de la taille de l'image, même à l'aide de la fonction Voici le code d'exemple: p> résultat (basé sur l'image - Paysage par Romain Vanur ): P> Le code complet de Mon Dépassible de pile Q1427602 GitHub Repository . P> P> P> P> P > Image () CODE> de MATLAB, une fonction peut générer 1: 1 affichage d'une image. P>