Измерение растояния в мм на Bmp картинке

Тема в разделе "Delphi - Multimedia, Графика, Игры", создана пользователем SomlicH, 17 мар 2008.

  1. SomlicH

    SomlicH Гость

    В общем задача такова, загружается в программу bmp файл в TImage и в нем есть некоторый обект который нужно измерить. Пользователь мышкой растягивает линию и программа в зависимости от длины линии пишет размер данного объекта в мм. Расширение картинки 640-480, что узнать количество пикселей на мм можно в кадр засунуть шаблон с заранее известным размером и по нем уже расчитать отношение мм/пиксели.

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

    Заранее спасибо за ответ.
     
  2. zubr

    zubr Гость

    1. Определяешь контекст устройства (дисплея): hdc:=GetDC(0);
    2. Определяешь горизонтальное соотношение пиксель /мм: kh:=GetDeviceCaps(hdc, HORZRES)/GetDeviceCaps(hdc, HORZSIZE);
    3. Определяешь вертикальное соотношение пиксель/мм: kv:=GetDeviceCaps(hdc, VERTRES)/GetDeviceCaps(hdc, VERTSIZE);
    Используя коэффициенты переводишь мм в пиксели.
     
  3. SomlicH

    SomlicH Гость

    Извините, но какой смысл имеют параметры kh:=GetDeviceCaps(hdc, HORZRES)/GetDeviceCaps(hdc, HORZSIZE);
    и kv:=GetDeviceCaps(hdc, VERTRES)/GetDeviceCaps(hdc, VERTSIZE);

    Если я их определяю у меня получается одно число - 3,79 что оно обозначает и как его приписать до моей идеи???

    Может я не понятно объяснил, но тема такова с видео источника я захватываю картинку в формате BMP и каждые 10мин я их сохраняю на винте, в кадре есть монета, размер которой я знаю вне зависимости от масштаба и увеличения. Таким образом я могу щелкнув мышкой в двух ее крайних точках и собственно расчитав длину линии полученной между этими двумя точками расчитать отношение мм к пикселям.
    ПРоблема в том как сделать "РЕЗИНОВУЮ" линию, которая тянулась бы за мышкой при ее перемещении. Тогда при отпускании я бы засек координаты и уже расчитав по известному соотношению выдал бы результат.

    В принципе программа предназначена дя того чтобы контролировать троцесс прорастания семян, т.е. каждые 10 мин нужно измерять длину проростка. Я думал делать это вышеописанным способом. Но теперь есть идея. Может просто сделать попиксельное сканирование картинки сохранить в массив все точки с их цветами, а потом посто анализировать изменение цвета фона (он белый) на зеленый или около того и просто делать контур и уже както расчитывать это математически????

    Но с меня сильный математик не очень, может у кого-то есть идеи.

    З.Ы. В кадре около 10 семян, в день более 100 фотографий конечно вручную измерить все это очень тяжело, математический подход был бы очень желательный!!!
     
Загрузка...
Похожие Темы - Измерение растояния мм
  1. Screamer
    Ответов:
    1
    Просмотров:
    1.331

Поделиться этой страницей