4

この式を使用してピクセル単位の距離がある場合:

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

どうやってCMに変換できますか?

4

4 に答える 4

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を正しく取得しているかどうかを確認することをお勧めします。モニターのサイズとアスペクト比、および解像度がわかっている場合、これは簡単に実行できます。たとえば、私の設定:

1920x1080pのワイドスクリーン16:923"モニター

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

運が良かったかもしれませんが、この方法でうまくいきました。

于 2010-06-09T16:32:33.187 に答える
4

アプリケーションの「ピクセル」とは何ですか?

画面のピクセルを意味する場合は、他の回答を見てください。画像のピクセルを意味する場合は、画像の物理的なサイズ (高さ、幅) を知る必要があり、ピクセルの幅を計算できます。

たとえば、画像が 10x10 cm で 512x512 ピクセルの場合、1 ピクセルは幅 10/512 cm です。10/512 にピクセル単位の距離を掛けると、センチメートル単位の距離が得られます。

于 2010-06-09T18:48:59.830 に答える
3

そのようなピクセルがレンダリングされるデバイスの DPI (または一般的には解像度) がわからない場合、ピクセルを cm に変換することはできません。

デバイスの DPI があると仮定すると、単純にピクセル / DPI * 2.54 を実行できます。

<考える>

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

...わかりました、単位は正しいです:) </thinking>

于 2010-06-09T16:28:46.957 に答える
0

ピクセルと CM は別の尺度です。ピクセルは環境に依存します。コンピュータの画面にはさまざまな解像度とサイズがあります。たとえば、私の画面では 100px は約 2.7cm です。状況はどうなっていますか?

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

于 2010-06-09T16:29:59.217 に答える