Je veux obtenir les quatre points d'angle ou les coordonnées d'une image. Comment puis-je les obtenir dans MatLab?Comment obtenir les coordonnées des coins d'une image dans matlab
Répondre
Si vous faites référence aux coordonnées des coins de l'image lorsque vous tracer l'image dans un des axes utilisant IMSHOW ou IMAGE/IMAGESC, alors voici comment vous pouvez les trouver:
Si vous intrigue l'image sans les plages spécifiant:
image(img); imshow(img);
Puis
img
est tracé sur un axe avec les pixels centrées sur les valeurs1:size(img,2)
horizontalement et1:size(img,1)
verticalement. Puisque ces valeurs représentent les centres des pixels et que la taille des pixels est égale à 1, l'image s'étend sur un demi-pixel au-delà des plages ci-dessus dans toutes les directions. L'étendue de l'image sont donc:xmin = 0.5; xmax = size(img,2)+0.5; ymin = 0.5; ymax = size(img,1)+0.5;
à partir duquel vous pouvez obtenir votre coin coordonnées
[xmin ymin]
,[xmin ymax]
,[xmax ymin]
et[xmax ymax]
.Si vous spécifiez des plages de traçage, telles que:
image([x1 x2],[y1 y2],img);
Vous pouvez penser que ces limites spécifiées sont les bords de l'image tracée, mais ils sont en réalité l'étendue du pixel centres, donc encore une fois la véritable étendue de l'image tracée est un demi-pixel de plus dans toutes les directions. La taille des pixels dans chaque direction peut être calculée comme suit:
dx = abs(x2-x1)/size(img,2); dy = abs(y2-y1)/size(img,1);
Et l'étendue de l'image sont donc:
xmin = min(x1,x2)-0.5*dx; xmax = max(x1,x2)+0.5*dx; ymin = min(y1,y2)-0.5*dy; ymax = max(y1,y2)+0.5*dy;
où vous pourrez à nouveau facilement obtenir les coordonnées de votre coin.
Quel type d'image est-ce? Veuillez poster un exemple ou une description détaillée. – Jacob
c'est une image .jpg. – chee
se référer à ce http://stackoverflow.com/questions/2608428/finding-edge-and-corner-values-of-an-image-in-matlab, ici il est clairement expliqué –