dpix=sqrt((x1-x2)^2+(y1-y2)^2);%# calculate distance in pixelspixperinch=get(0,'ScreenPixelsPerInch');%# find resolution of your displaydinch=dpix/pixperinch;%# convert to inches from pixelsdcm=dinch*2.54;%# convert to cm from inches
EDIT: Vous voudrez peut-être vérifier si votre système est la taille de l'écran de dpi et les corriger. Si vous connaissez les dimensions et l'aspect ratio et la résolution de votre écran, cela se fait facilement. Par exemple, ma configuration:
Grand écran 16:9 Moniteur 23" à 1920x1080p
h^2+w^2=23^2andh/w=9/16
donne
h=11.28andw=20.05inches
get(0,'Screensize') retourne [1 1 1920 1080]
et get(0,'ScreenPixelsPerInch') retourne 96
Donc 1920/20.05 = 95.76 et 1080/11.28 = 95.74
Peut-être que j'ai eu de la chance, mais cette méthode a fonctionné pour moi.
Je ne sais pas à propos de matlab, mais généralement, la résolution de l'écran fourni par le système d'exploitation sont truquées, c'est à dire qu'ils sont utilisés juste pour avoir une certaine idée de l'échelle le texte (blogs.msdn.com/b/oldnewthing/archive/2004/07/14/...). Donc, probablement que vous ne jamais obtenir la "vraie" taille de l'écran avec cette méthode.
Si vous voulez dire que les pixels de l'écran, à regarder les autres réponses. Si vous voulez dire que les pixels de l'image, vous devez connaître la taille physique de l'image (hauteur, largeur), et ensuite, vous pouvez calculer la largeur d'un pixel est.
Par exemple, si votre image est de 10x10 cm, et 512x512 pixels, un pixel est 10/512 cm de large. Multiplier 10/512 par la distance, en pixels, et vous obtenez la distance en centimètres.
Vous ne pouvez pas convertir les pixels en cm si vous ne connaissez pas le DPI (ou, en général, la résolution) de l'appareil sur lequel de ces pixels sont rendus.
En supposant que vous avez l'indicateur de performance de votre appareil, vous pouvez simplement faire pixel /PPP * 2.54.
pixel et CM sont différentes mesures. Un pixel est dépendante de l'environnement. Les écrans d'ordinateur ont différentes résolutions et tailles. Par exemple sur mon écran 100px est d'environ 2,7 cm, Quelle est la situation?
Appeler le " ScreenPixelsPerInch propriété:
Ou pour le one-liner approche:
EDIT: Vous voudrez peut-être vérifier si votre système est la taille de l'écran de dpi et les corriger. Si vous connaissez les dimensions et l'aspect ratio et la résolution de votre écran, cela se fait facilement. Par exemple, ma configuration:
Grand écran 16:9 Moniteur 23" à 1920x1080p
donne
get(0,'Screensize')
retourne[1 1 1920 1080]
et
get(0,'ScreenPixelsPerInch')
retourne96
Donc
1920/20.05 = 95.76
et1080/11.28 = 95.74
Peut-être que j'ai eu de la chance, mais cette méthode a fonctionné pour moi.
OriginalL'auteur Doresoom
Ce qu'est un "pixel" dans votre application?
Si vous voulez dire que les pixels de l'écran, à regarder les autres réponses. Si vous voulez dire que les pixels de l'image, vous devez connaître la taille physique de l'image (hauteur, largeur), et ensuite, vous pouvez calculer la largeur d'un pixel est.
Par exemple, si votre image est de 10x10 cm, et 512x512 pixels, un pixel est 10/512 cm de large. Multiplier 10/512 par la distance, en pixels, et vous obtenez la distance en centimètres.
OriginalL'auteur Jonas
Vous ne pouvez pas convertir les pixels en cm si vous ne connaissez pas le DPI (ou, en général, la résolution) de l'appareil sur lequel de ces pixels sont rendus.
En supposant que vous avez l'indicateur de performance de votre appareil, vous pouvez simplement faire pixel /PPP * 2.54.
<penser>
...ok, les unités sont de droite 🙂
</penser>
OriginalL'auteur Matteo Italia
pixel et CM sont différentes mesures. Un pixel est dépendante de l'environnement. Les écrans d'ordinateur ont différentes résolutions et tailles. Par exemple sur mon écran 100px est d'environ 2,7 cm, Quelle est la situation?
http://en.wikipedia.org/wiki/Pixel_density
OriginalL'auteur Olly Hicks