将像素转换为cm

时间:2010-06-09 16:25:14

标签: matlab pixel

如果我使用此公式的像素距离:

sqrt((x1-x2).^2+.(y1-y2)^2))

如何将其转换为CM?

4 个答案:

答案 0 :(得分:7)

调用'ScreenPixelsPerInch'属性:

dpix=sqrt((x1-x2)^2+(y1-y2)^2);          %# calculate distance in pixels
pixperinch=get(0,'ScreenPixelsPerInch'); %# find resolution of your display
dinch=dpix/pixperinch;                   %# convert to inches from pixels
dcm=dinch*2.54;                          %# convert to cm from inches

或者对于单线方法:

dcm=sqrt((x1-x2)^2+(y1-y2)^2))/get(0,'ScreenPixelsPerInch')*2.54;

编辑:您可能想要检查系统是否获得屏幕尺寸和dpi正确。如果您知道显示器的尺寸和宽高比以及分辨率,则可以轻松完成。例如,我的设置:

Widescreen 16:9 23“监视器在1920x1080p

h^2+w^2=23^2 and h/w=9/16

给出

h=11.28 and w=20.05 inches

get(0,'Screensize')返回[1 1 1920 1080]

get(0,'ScreenPixelsPerInch')返回96

所以1920/20.05 = 95.761080/11.28 = 95.74

也许我很幸运,但这种方法适合我。

答案 1 :(得分:4)

您应用中的“像素”是什么?

如果您的意思是屏幕像素,请查看其他答案。如果你的意思是图像像素,你需要知道图像的物理尺寸(高度,宽度),然后你可以计算像素的宽度。

例如,如果您的图像是10x10厘米和512x512像素,则一个像素的宽度为10/512厘米。以像素为单位乘以10/512的距离,得到以厘米为单位的距离。

答案 2 :(得分:3)

如果您不知道渲染此类像素的设备的DPI(或通常是分辨率),则无法将像素转换为cm。

假设您拥有设备的DPI,那么您只需执行像素/ DPI * 2.54。

<思维>

      px     cm          in     cm          cm
px : ---- * ---- = px * ---- * ---- = in * ---- = cm
      in     in          px     in          in

......好吧,单位是对的:) < /思维>

答案 3 :(得分:0)

像素和CM是不同的衡量标准。像素取决于环境。电脑屏幕具有不同的分辨率和尺寸。例如在我的屏幕上100px约为2.7cm是什么情况?

http://en.wikipedia.org/wiki/Pixel_density