преобразовать пиксель в см - PullRequest
4 голосов
/ 09 июня 2010

Если у меня есть расстояние в пикселях, используя эту формулу:

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

Как я могу преобразовать его в CM?

Ответы [ 4 ]

7 голосов
/ 09 июня 2010

Вызовите свойство '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;

РЕДАКТИРОВАТЬ: Вы можете проверить, если ваша система получает правильный размер экрана и точек на дюйм. Если вы знаете размер, соотношение сторон и разрешение вашего монитора, это легко сделать. Например, моя установка:

Широкоэкранный 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

Возможно, мне повезло, но этот метод мне помог.

4 голосов
/ 09 июня 2010

Что такое «пиксель» в вашем приложении?

Если вы имеете в виду пиксели экрана, посмотрите на другие ответы.Если вы имеете в виду пиксели изображения, вам нужно знать физический размер изображения (высоту, ширину), а затем вы можете рассчитать, какова ширина пикселя.

Например, если ваше изображение имеет размер 10x10 см, и512x512 пикселей, один пиксель шириной 10/512 см.Умножьте 10/512 на расстояние в пикселях, и вы получите расстояние в сантиметрах.

3 голосов
/ 09 июня 2010

Невозможно преобразовать пиксели в см, если вы не знаете DPI (или, вообще, разрешение) устройства, на котором воспроизводятся такие пиксели.

Предположим, у вас есть DPIваше устройство, то вы можете просто сделать пиксель / DPI * 2,54.

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

... хорошо, единицы измерения правильны :)

0 голосов
/ 09 июня 2010

пиксель и CM - это разные меры. Пиксель зависит от окружающей среды. Компьютерные экраны имеют разные разрешения и размеры. Например на моем экране 100px примерно 2,7 см. Какова ситуация?

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...