Comment faire pour enregistrer un tracé de l'image et de conserver la taille originale de l'image sous MATLAB?
J'aimerais afficher une image et de tracer quelque chose sur elle, puis l'enregistrer comme une image de la même taille que celui d'origine. Mon code MATLAB est:
figH = figure('visible','off');
imshow(I);
hold on;
% plot something
saveas(figH,'1','jpg');
close(figH);
Mais l'image qui en résulte "1.jpg" a sauvé non-zones de l'image dans l'intrigue ainsi que l'image. Comment puis-je résoudre ce problème?
Comment beaucoup plus grand? Un ordre de grandeur? Un petit pourcentage?
Désolé, je devrais dire de ne pas enregistrer la non-zone de l'image dans l'intrigue.
Désolé, je devrais dire de ne pas enregistrer la non-zone de l'image dans l'intrigue.
OriginalL'auteur Tim | 2009-12-04
Vous devez vous connecter pour publier un commentaire.
La raison de votre nouvelle image est plus grande que l'original est parce que le SAVEAS fonction enregistre l'ensemble de la figure de la fenêtre, et pas seulement le contenu des axes (qui est l'endroit où votre image est affichée).
Votre question est très similaire à un autre DONC, la question, donc je vais tout d'abord les deux principales options visées par ces réponses:
Modifier les données d'image brutes: Vos données d'image est stockée dans la variable
I
, de sorte que vous pouvez modifier directement les valeurs de pixel de l'image dansI
puis enregistrez l'image modifiée de données à l'aide de IMWRITE. Les façons dont vous pouvez faire cette sont décrites dans ma réponse et LiorH réponse. Cette option ne fonctionnera le mieux pour de simples modifications de l'image (comme l'ajout d'un rectangle, que la question a concerné).Modifier la façon dont la figure est enregistré: Vous pouvez également modifier le mode d'enregistrement la figure afin qu'il corresponde mieux aux dimensions de votre image d'origine. Les façons dont vous pouvez faire cela (à l'aide de la IMPRIMER et GETFRAME fonctions à la place de SAVEAS) sont décrites dans les réponses de Azim, jacobko, et SCFrench. Cette option est ce que vous voulez faire si vous avez été la superposition de l'image avec des étiquettes de texte, des flèches, ou d'autres plus impliqués parcelle objets.
À l'aide de la deuxième option, par la sauvegarde de l'ensemble de la figure peut être délicat. Plus précisément, vous pouvez perdre la résolution de l'image si vous étiez le traçage d'une grande image (dis 1024 par 1024 pixels) dans une petite fenêtre (disons 700-par-700 pixels). Vous devez définir la figure et les axes de propriétés à accueillir. Voici un exemple de solution:
L'image de sortie
image2.jpg
devrait avoir un astérisque rouge et devrait avoir les mêmes dimensions que l'image d'entrée.En gros, j'ai combiné Azim et SCFrench suggestions et ajout d'une nouvelle solution à ma réponse ci-dessus. J'espère que ça va prendre soin des choses pour vous.
OriginalL'auteur gnovice