nabbla (nabbla1) wrote,
nabbla
nabbla1

Categories:

Визуализация обнаруженных точек

Собрал параметры точек из дампа памяти - и наложил их на полученное с прибора изображение:


Определённая логика в этом просматривается...


Наиболее понятно, что происходит с частично загороженной "мишенью" справа снизу.
На первой же строке точка обнаружена, и ей ставится "номинальный" диаметр 120 пикселей - именно точки такого диаметра я ожидал на такой дальности, и поставил его пока что "ручками". Подразумевалось, что "грубо" дальность будет измерена по яркости отражённого сигнала, т.е по экспозиции, при которой точки перестанут уходить в насыщение, но с этой аналоговой камерой подобное не проходит - она живёт "своей жизнью".

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

Только нижняя часть нашего "месяца" не попадает в зону охвата верхней "точки" - поэтому обнаруживается ещё одна.

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

С "мишенью" слева снизу получилось чуть интереснее. Начало было тем же: обнаружили точку на первой же строке (на верхушке), после чего из-за одинаковой яркости она вовсе не стремилась сползти вниз.

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

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

Похоже, в диаметр точки записывается модуль разности между двумя обнаруженными точками, но при этом координаты центра остаются прежними. Это приводит к тому, что точка фактически ужимается вдвое, поэтому уже на следующей строке мы обнаруживаем очередную точку ещё раньше, с последующим ужиманием - и таким макаром точка совсем сплющивается. Затем обнаруживается ещё одна такая точка, и так до тех пор пока справа будут оставаться "неохваченные" области.


Вот мы наконец и получили 100% покрытие кода обнаружения точек :) Самое время писать новый, более приспособленный под эту задачу! Хочется сделать что-то простое до безобразия, но это сложно...
Tags: ПЛИС, программки, работа, странные девайсы
Subscribe

  • Нахождение двух самых отдалённых точек

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

  • Слишком общительный счётчик

    Вчера я чуть поторопился отсинтезировать проект,параметры не поменял: RomWidth = 8 вместо 7, RamWidth = 9 вместо 8, и ещё EnableByteAccess=1, чтобы…

  • Балансируем конвейер QuatCore

    В пятницу у нас всё замечательно сработало на симуляции, первые 16 миллисекунд полёт нормальный. А вот прошить весь проект на ПЛИС и попробовать "в…

  • Огари разговаривают

    Сегодня по пути на работу встретил огарей прямо в Лосином острове, на берегу Яузы. Эти были на удивление бесстрашны, занимались своими делами, не…

  • Ковыряемся с сантехникой

    Наконец-то закрыл сколько-нибудь пристойно трубы, подводящие к смесителю, в квартире в Москве: А в воскресенье побывал на даче, там очередная…

  • Мартовское велосипедное

    Продолжаю кататься на работу и с работы на велосипеде, а также в РКК Энергию и на дачу. Хотя на две недели случился перерыв, очередная поломка,…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 1 comment