Измерение комнаты с iPhone - PullRequest
4 голосов
/ 07 июля 2010

Мне нужно измерить комнату (если возможно) из приложения для iPhone, и я ищу несколько идей о том, как мне этого добиться.Чрезвычайная точность не важна, но точность, скажем, 1 фут, была бы хорошей.Некоторые идеи, которые у меня были до сих пор:

  • Прогулка по комнате и измерение с помощью GPS.Маловероятно, что он будет достаточно точным, особенно для пользователей iPod touch
  • Издайте звук с микрофона и измерьте, сколько времени потребуется, чтобы вернуться.Есть некоторые приложения, которые уже делают это, такие как PocketMeter .Я подозреваю, что это не будет удобно и более бесполезно, чем практично.

У кого-нибудь есть другие идеи?

Ответы [ 9 ]

30 голосов
/ 07 июля 2010

Вы можете встать в один угол и бросить телефон в дальний угол. Телефон может начать измерение в определенной точке ускорения и завершить измерение при замедлении

11 голосов
/ 07 июля 2010

1) Положите iPhone на пол, начиная с одной стены, опираясь на стену.

2) Отметьте линию, где iPhone заканчивается сверху.

3) Поднимите iPhone и переместите базу туда, где находится линия, которую вы только что нарисовали.

4) Повторяйте шаги 1-> 3, пока не дойдете до другой стены.

5) Умножьте количество линий, необходимых для достижения другой стены, на длину iPhone для достижения окончательного измерения.

=)

9 голосов
/ 07 июля 2010

Я помню, как видел программы для риэлторов, которые включали удержание эталонного объекта на картинке. Программа идентифицирует эталонный объект и другие плоские поверхности на изображении и рассчитывает размеры по ним. Он был предназначен для измерения экстерьера домов. Он мог следовать за соединенными стенами, которые, как он мог предположить, находились под прямым углом.

Вместо доставки с эталонным объектом, как это делали эти программы, вы можете использовать несколько обычных бытовых предметов, таких как лист бумаги для принтера. Позвольте пользователю выбрать из списка общих объектов, какой плоский предмет он держит на стене.

Обнаружение краев стен и эталонного объекта - это сложное распознавание образов, за которым следует хитрая математика для преобразования найденных краев в плоскости. Но все же лучше, чем бросать телефон в дальнюю стену.

4 голосов
/ 07 июля 2010

Издайте звуки из микрофона и измерьте, сколько времени потребуется, чтобы вернуться. Есть некоторые приложения, которые уже делают это, такие как PocketMeter. Я подозреваю, что это не будет удобно для пользователя и более бесполезно, чем практично.

Au contraire, понедельник.

Это наиболее удобный, не говоря уже о точном, способ измерения размеров комнаты.

PocketMeter измеряет расстояние до одной стены с точностью до полдюйма.

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

Отредактировано, из-за комментария, добавить:

В идеальном мире вы получили бы 6 импульсов, по одному от каждой поверхности. Однако мы не живем в идеальном мире. Вот некоторые вещи, которые вы должны принять во внимание:

  • Звуковой импульс вызывает вибрацию iPhone. Микрофон iPhone улавливает эту вибрацию.
  • Тип пола (ковер, дерево, плитка) влияет на время прохождения звука по полу и обратно к устройству.
  • Звук отражается от более чем одной поверхности (стены) и возвращается в iPhone.

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

Теперь я не хочу вас обескураживать. Расчеты можно сделать. Тем не менее, это займет некоторую работу. Ведь PocketMeter некоторое время занимался этим, и они измеряют только расстояние до одной стены.

2 голосов
/ 08 июля 2010

Дайте мне посмотреть, поможет ли это. Возьмите объект известной длины и держите его у стены, а с Iphone сделайте снимок стены вместе с объектом, который вы держали у стены. Теперь получите соотношение ширины стены и ширины объекта из изображения в Iphone. И поскольку вы знаете ширину объекта, вы можете легко рассчитать ширину стены. Повторите это для каждой стены, и у вас будет измерение комнаты.

2 голосов
/ 07 июля 2010

Я думаю, что более простой способ сделать это - использовать теорему Пифагора. Большинство комнат имеют высоту 8 или 10 футов, и если пользователь может точно угадать, вы можете использовать камеру для анализа и подсчета чисел. (Возможно, вам понадобится какой-нибудь умный способ определения угла)

Как это сделать

Я ожидаю 5 баллов от вашей нижней линии за это;)

1 голос
/ 07 июля 2010

Ваши пользователи могут измерять известное расстояние, измеряя его, и тем самым калибровать длину своего темпа. Затем они могли вводить расстояние каждой стены шагами, и телефон переводил его в футы. Это, вероятно, было бы очень удобно, и, вероятно, было бы с точностью до 10%.

Если им, возможно, потребуются более точные показания, дайте им возможность ввести измерение с рулетки.

0 голосов
/ 15 марта 2013

Когда пользователь хочет измерить что-то, он делает снимок, но на самом деле вы делаете два отдельных изображения, одно с включенной вспышкой, другое с выключенной вспышкой. Затем вы можете проанализировать различия в освещении на изображении и отражении вспышки, чтобы определить масштаб изображения. Я думаю, это будет работать только для близких и не слишком ярких объектов.

Но это единственный способ, которым я думал о вычитании масштаба из изображения без каких-либо фиксированных объектов.

0 голосов
/ 29 августа 2011

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

Получите объект известного размера и сфотографируйте его на стене, прислонив iphone к другой стене (нужны два человека или глютак). Затем вы можете рассчитать расстояние между стенами, посмотрев на размер объекта (в пикселях) на фотографии. Вы можете использовать PDF-файл, чтобы сделать печатный документ объектом известного размера, и использовать 2D-штрих-код, чтобы заставить iphone его забрать.

...