2017-09-29 1 views
1

J'ai une image avec TagGroup (plusieurs tags individuels). Et je voudrais recadrer l'image tout en gardant le même TagGroup. Il semble que je doive créer une nouvelle image et cloner le taggroup original à cette nouvelle image.Comment cloner un TagGroup entier d'une image vers une autre image?

Je ne souhaite pas manipuler les tags individuellement car ils sont beaucoup trop longs et trop lents. J'ai vu qu'il y a des commandes pour les faire fonctionner dans leur ensemble (comme TagGroupCopyTag(); TagGroupCopyTagsFrom(); TagGroupClone()); Mais je n'ai trouvé aucune commande pour attacher ce TagGroup entier à une image. C'est peut-être une question stupide, mais quelqu'un pourrait-il me le dire?

Merci

+0

Pas une question idiote du tout! – BmyGuest

Répondre

0

Si vous voulez faire étape par étape, alors vous devez obtenir les images, puis les taggroups des images, puis utilisez la commande pour copier et clone. (Notez que vous souhaitez cloner ou vous obtiendrez le identique taggroup, à savoir la mémoire partagée tant que les images sont ouverts en DM.)

image srcImg := A 
image dstImg := B 
taggroup srcTg = ImageGetTagGroup(srcImg) 
taggroup dstTg = ImageGetTagGroup(dstImg) 
taggroup srcTgCopy = TagGroupClone(srcTg) 
TagGroupCopyTagsFrom(dstTg, srcTg) 

Mais vous pouvez facilement « combiner » que tous en un seul ligne ainsi:

B.ImageGetTagGroup().TagGroupCopyTagsFrom(A.ImageGetTagGroup().TagGroupClone()) 

Enfin, si votre objectif est de créer une « copie » d'un paragraphe d'une image je recommande quelque chose comme ça (y compris les balises et le calibrage):

image srcImg := A 
image cropped := ImageClone(srcImg[0,0,10,10]) 
ShowImage(cropped) 
+1

Oh. c'est une surprise que ImageClone() de la sous-zone garde réellement les étiquettes et l'étalonnage. Je l'ai testé avant de poster cette question et cela m'a donné un résultat différent. Probablement que je manquais le côlon important par erreur. – Roger

+0

Je fais pivoter une image et recadre une sous-zone. Il semble que l'image pivotée (new: = Rotate (img, angle)) ne conserve pas les tags et le calibrage. Ensuite, je dois utiliser le TagGroupClone(). – Roger

+0

De votre exemple, il semble que les balises définies sont toujours liées à l'image. Toute modification des tags aura un effet sur l'image immédiatement. Ainsi, au lieu d'ajouter une étiquette à une image (c'est ce qu'il faut faire individuellement), nous pourrions saisir l'étiquette originale d'une image et la modifier. C'est une surprise pour moi. – Roger