Как можно рассчитать площадь листа в R, исходя из снимка, сделанного с учетом разрешения в пикселях, фокусного расстояния и высоты камеры?
Я ищу автоматический способ измерения площади листа по снимку, сделанному обычной камерой. Я хотел бы использовать камеру телефона, так как это облегчит работу. Я могу использовать ImageJ, но я верю, что может быть более быстрый способ сделать это.
До сих пор я знаю следующие особенности:
- разрешение в пикселях ( 3042 x 4032)
- Фокусное расстояние камеры (эквивалент 26 мм)
- датчик камеры ( 7,01 мм х 5,79 мм)
- высота камеры ( 25 см)
Я спрашиваю о R, потому что я работал над этим некоторое время, и я не буду менять программное обеспечение. Я попробовал некоторые пакеты, такие как EBIimage и magick, но я не зашел так далеко. Я могу загрузить картинку, но не могу рассчитать количество пикселей.
Кто-нибудь когда-нибудь пытался сделать что-то подобное в R?
Пожалуйста, комментарии и ответы будут очень благодарны.
Спасибо.
1 ответ
Если вы хотите измерить площадь листа, я рекомендую LeafByte. Это бесплатное приложение с открытым исходным кодом для iPhone и iPad. Он измеряет площадь листьев и уровни травоядности намного быстрее, чем ImageJ и соответствующее программное обеспечение, и его очень легко использовать. Он также автоматически сохраняет ваши данные в электронной таблице. Вы можете загрузить его в магазине приложений или узнать больше о LeafByte на сайте ниже. Вы также можете проверить страницу часто задаваемых вопросов, чтобы узнать о способах неразрушающего измерения листьев в полевых условиях.
https://zoegp.science/leafbyte
https://zoegp.science/leafbyte-faqs
Заявление об ограничении ответственности: я принимал участие в создании этого приложения, но поскольку оно бесплатное, я не зарабатываю на его использовании денег.
Используйте калибраторы.
- Возьмите три (или более) листа бумаги разной площади.
- Затем сфотографируйте листы на одинаковом расстоянии (25 см)*.
- Рассчитайте площадь пикселей каждого листа.
- Разделите метрическую площадь на площадь пикселей каждого листа. Давайте назовем этот номер к.
- Рассчитайте среднее значение k.
- Рассчитайте метрическую площадь листа, используя эту формулу: metric_area = k * pixel_area.
* Вы также можете использовать калибраторы для разных расстояний от листа. Это немного сложнее, но, вероятно, более точно, чем расчет.
Имейте в виду, что объектив с фокусным расстоянием 26 мм будет иметь некоторые искажения по краям изображения. Было бы лучше, если бы вы использовали объектив 50 мм или более. В противном случае всегда центрируйте лист на изображении и оставляйте некоторое пространство вокруг листа.
Вот как бы я это сделал. Я бы использовал Python и https://scikit-image.org/ вместо R, я считаю, что это проще и лучше документировано для анализа изображений.