如果我使用此公式的像素距离:
sqrt((x1-x2).^2+.(y1-y2)^2))
如何将其转换为CM?
答案 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.76
和1080/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是什么情况?