Автор Тема: Посоветуйте программу для измерений расстояний на изображениях  (Прочитано 16475 раз)

Оффлайн rotkart

  • Завсегдатай
  • *
  • Сообщений: 661
    • Email
Всех с прошедшими праздниками!

Прошу посоветовать программу для измерений объектов на изображениях, полученных с микроскопа, типа OptixCam OCView или miXscope. Не могу найти ничего такого плана под свободной лицензией и под линукс :-(
Научить нельзя, научиться можно.

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 932
    • Домашняя страница
    • Email
Увы, только пиксели мерить в GIMP. Я тоже не нашёл.
Андрей Черепанов (cas@)

Оффлайн rotkart

  • Завсегдатай
  • *
  • Сообщений: 661
    • Email
Увы, только пиксели мерить в GIMP. Я тоже не нашёл.
Печально :-(
Тогда можно уточнить:
У меня 17-ти дюймовый монитор с разрешением 1280х1024
[user@cab303 ~]$ xdpyinfo | grep resolution
  resolution:    75x75 dots per inch
На сайте http://lcdtech.no-ip.info/data/pixel.size.htm есть калькулятор физического размера пикселя монитора. Для моего получается 96.423 пкс/дюйм
Допустим, что элемент, который я померял инструментом в гимп имеет длину 218 пикселей.
Тогда для 75 dpi он имеет длину 73,66 мм, а для 96.423 - 57,4.
Тупо по приложенной к экрану линейке вернее второй вариант.
Правильно считать как?

Но это я брал картинку со сканера, он плоский. Изображение с микроскопа - это ведь как снимок фотокамерой. На одном из форумов я нашел следующую формулу:
Р-р объекта в мм = (Р-р его в пикселях * Р-р пикселя в мм * Расстояние до объекта) / Фокусное расстояние.
Можно ли пренебречь расстоянием до объекта и фокусным расстоянием в случае микроскопа?
Тем более, что про фокусное расстояние микроскопа Digital Blue QX5 я ничего не нашёл на сайте производителя :-( Да и расстояние до объекта можно лишь прикинуть на глаз.
Научить нельзя, научиться можно.

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 932
    • Домашняя страница
    • Email
Но это я брал картинку со сканера, он плоский. Изображение с микроскопа - это ведь как снимок фотокамерой. На одном из форумов я нашел следующую формулу:
Р-р объекта в мм = (Р-р его в пикселях * Р-р пикселя в мм * Расстояние до объекта) / Фокусное расстояние.
Можно ли пренебречь расстоянием до объекта и фокусным расстоянием в случае микроскопа?
Тем более, что про фокусное расстояние микроскопа Digital Blue QX5 я ничего не нашёл на сайте производителя :-( Да и расстояние до объекта можно лишь прикинуть на глаз.
Нужно смотреть, какого масштаба получается фотография. Затем ( p-p в пикселях /  dpi сканированного изображения ) * масштаб фотографии = расстояние в дюймах

P.S. GIMP вычисляет расстояние не в экранных точках, а в точках изображения. В изображении часто кодируется dpi, как отношение размера пикселя к реальным размерам.
Андрей Черепанов (cas@)

Оффлайн rotkart

  • Завсегдатай
  • *
  • Сообщений: 661
    • Email
Нужно смотреть, какого масштаба получается фотография. Затем ( p-p в пикселях /  dpi сканированного изображения ) * масштаб фотографии = расстояние в дюймах
Масштаб = увеличение микроскопа, правильно?
На 60-ти кратном увеличении - это будет 60.
Dpi сканированного изображения - это тоже понятно, но это не сканирование.
Когда я делаю снимок изображения из vlc (камера даёт видео 640х480) - там какое получается dpi? 75 или другое?

P.S. GIMP вычисляет расстояние не в экранных точках, а в точках изображения. В изображении часто кодируется dpi, как отношение размера пикселя к реальным размерам

Kruler тоже?

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

Оффлайн stranger573

  • Мастер
  • ***
  • Сообщений: 1 456
    • Email
Когда я делаю снимок изображения из vlc (камера даёт видео 640х480) - там какое получается dpi? 75 или другое?
Не. Так у Вас ничего не выйдет. Запутаетесь. Надо ещё учитывать с каким масштабом это 640х480 натягивается на экран. Вы ведь эту картинку можете и на весь экран растянуть, или наоборот уменьшить до произвольного окна.

Gimp как раз правильно размер в пикселях (не экрана, а самой картинки) показывает, независимо от масштаба на экране. Может гулять только 1-2 пикселя, за счёт дробных пикселей при масштабировании.

Самый простой способ -- сделать картинку с микроскопа, с образца эталонного размера и рассчитать коэффициент к тому, что показывает Gimp. Вы ведь можете в микроскоп запихнуть, что нибудь, размер чего известен? Так будет проще всего -- один раз посчитали коэффициент и можно на любом компьютере пользоваться. dpi в этом случае никаким боком не влияет. Единственно, может придётся несколько коэффициентов просчитать, если у микроскопа размер картинки и/или увеличение изменяются.

К примеру, кладёте под микроскоп образец_длиной_1мм=A, получаете с микроскопа картинку 640х480 пикселей. Открываете эту картинку в Gimp, измеряете длину образца, пусть будет 200_пикселей=P. Тогда k=A/P=1/200, записываете значение k и используете его потом. Следовательно, любой другой размер на картинке с этого микроскопа будет L=kP[мм]. Однако это действительно только в том случае, когда увеличение микроскопа не изменяется, полученная картинка всегда одного размера (в пикселях), нигде не обрабатывается и размер её в пикселях не изменяется.

P.S. А на картинке с микроскопа нет линейки?
« Последнее редактирование: 09.01.2013 19:03:23 от stranger573 »

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 975
P.S. А на картинке с микроскопа нет линейки?

Да. Нужен некий эталонный размер.
Я далал программу для измерения размеров на видео (конечно с большим +/-) и в качестве эталона брал длину объект с которым работает машина - в моем варианте они были одной длины... Но делал на билдере, т.е. под винду...

Оффлайн rotkart

  • Завсегдатай
  • *
  • Сообщений: 661
    • Email
К примеру, кладёте под микроскоп образец_длиной_1мм=A, получаете с микроскопа картинку 640х480 пикселей. Открываете эту картинку в Gimp, измеряете длину образца, пусть будет 200_пикселей=P. Тогда k=A/P=1/200, записываете значение k и используете его потом. Следовательно, любой другой размер на картинке с этого микроскопа будет L=kP[мм]. Однако это действительно только в том случае, когда увеличение микроскопа не изменяется, полученная картинка всегда одного размера (в пикселях), нигде не обрабатывается и размер её в пикселях не изменяется.

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

P.S.
Программы, приведённые как примеры для искомого ПО, тоже калибруются по принципу первоначального измерения эталонного единичного отрезка, но позволяют затем перенастраивать резкость, не теряя точности измерений.
Научить нельзя, научиться можно.

Оффлайн ovk

  • Давно тут
  • **
  • Сообщений: 134
Выход с размещением линейки и песка в одном кадре это выход, но он не всегда возможен.
Когда-то в школе на уроках биологии мы пользовались предметными стеклами с нанесенной масштабной сеткой. Кстати, не вооруженным глазом эта сетка практически не была видна.

Оффлайн rotkart

  • Завсегдатай
  • *
  • Сообщений: 661
    • Email
Когда-то в школе на уроках биологии мы пользовались предметными стеклами с нанесенной масштабной сеткой. Кстати, не вооруженным глазом эта сетка практически не была видна.
Спасибо, подойду к биологине, поспрашиваю.
Но это для препаратов, которые смотрят на просвет - клетки там, насекомые.
На песок же приходится светить внешней подсветкой.
Научить нельзя, научиться можно.

Оффлайн stranger573

  • Мастер
  • ***
  • Сообщений: 1 456
    • Email
Выход с размещением линейки и песка в одном кадре это выход, но он не всегда возможен.
В принципе часть стекла с линейкой/масштабной сеткой можно оставить в поле зрения не засыпая песком. Однако, этот метод не будет работать с относительно толстыми предметами (песок, камушки) -- когда Вы наведёте резкость на вершину кучки песка масштабная сетка будет не в фокусе, и скорее всего её уже не будет видно. К тому же даже если масштабную сетку удастся разглядеть она уже не поможет, поскольку так тоже будет расхождение в размерах вершины кучки и сетки которая лежит ниже.

Далее кладу на стол микроскопа измеряемый объект (песок, грунт, камешки), опять навожу резкость - и тут у меня изменяется вертикальное расстояние от линзы до измеряемого объекта, соответственно должен измениться и коэффициент, вы правы :-(
А вот это не всегда так. Всё зависит от того как работает наводка на резкость. Если резкость наводится перемещением всей оптической системы (матрицы, линзы) или предметного столика и фокусное расстояние не изменяется (как в обычных оптических микроскопах), то коэффициент остаётся неизменным. Если есть оптический или цифровой зум, тогда должна быть обратная связь, то есть для пересчёта коэффициента нужно как то получать степень зуммирования.

Наличие трёх степеней увеличения -- не проблема, это статические неизменные коэффициенты. Главное -- способ, каким наводится резкость.
« Последнее редактирование: 10.01.2013 01:33:46 от stranger573 »

Оффлайн rotkart

  • Завсегдатай
  • *
  • Сообщений: 661
    • Email
Наличие трёх степеней увеличения -- не проблема, это статические неизменные коэффициенты. Главное -- способ, каким наводится резкость.
Перемещением предметного стола микроскопа. Зуммирования цифрового нет.

Вот пример двух картинок с микроскопа - увеличение 10х , потом 60х.
Сверху - миллиметровые риски металлической линейки, снизу - скрепка из степлера :-)
http://i4.imageban.ru/out/2013/01/10/1696cbdec7e6e134bde199897e827d42.png
http://i4.imageban.ru/out/2013/01/10/b5efa773656879e21505c95bfa878eb2.png
В принципе - измеряемо.
Побаловался сейчас измерителем в гимпе - мда... 640х480 - это так мало.
Чтобы более-менее точный результат измерений получить придётся делать серию измерений как еденичного отрезка, так и измеряемого объекта :-(
Научить нельзя, научиться можно.

Оффлайн rotkart

  • Завсегдатай
  • *
  • Сообщений: 661
    • Email
Однако, этот метод не будет работать с относительно толстыми предметами (песок, камушки) -- когда Вы наведёте резкость на вершину кучки песка масштабная сетка будет не в фокусе, и скорее всего её уже не будет видно. К тому же даже если масштабную сетку удастся разглядеть она уже не поможет, поскольку так тоже будет расхождение в размерах вершины кучки и сетки которая лежит ниже.
Вот и я о чём! Плюс-минус километр.
Научить нельзя, научиться можно.

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 975
>Плюс-минус километр.
ну почти с точностью штангенциркуля можно :)
Почти... т.к. десятки наверное не поймать... даже 3 мм не влезает в 60...
« Последнее редактирование: 10.01.2013 09:34:51 от YYY »

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 932
    • Домашняя страница
    • Email
Андрей Черепанов (cas@)