Showing posts with label russian. Show all posts
Showing posts with label russian. Show all posts
По простому о matting laplacian
В математике у нас есть уравнение Лапласа
\delta u = 0
Перепишем:
Вспомним, как можно расписывать вторую производную:
Для изображения равенство нулю оператора лапласа означает, что в каждая точка должна быть равна среднему из своих соседей.
Уравнение маттинг лапласиана - это то же самое, но только делается не обычное усреднение, а усреднение с весами. Веса зависят от похожести пикселей.
\delta u = 0
Перепишем:
Вспомним, как можно расписывать вторую производную:
Для изображения равенство нулю оператора лапласа означает, что в каждая точка должна быть равна среднему из своих соседей.
Уравнение маттинг лапласиана - это то же самое, но только делается не обычное усреднение, а усреднение с весами. Веса зависят от похожести пикселей.
То, что вы хотели знать про оптический поток, но стеснялись спросить
Взято с http://habrahabr.ru/post/201406/.
Объяснение оптического потока из OpenCV для тех, кто не в теме и не очень хочет разобраться.

Оптический поток (Optical flow) – технология, использующаяся в различных областях computer vision для определения сдвигов, сегментации, выделения объектов, компрессии видео. Однако если мы захотим его по-быстрому реализовать в своем проекте, прочитав про него на википедии или где-нибудь еще, то, скорее всего, очень быстро наткнемся на то, что он работает очень плохо и сбоит при определении сдвигов уже порядка 1-2 пикселей (по крайней мере так было у меня). Тогда обратимся к готовым реализациям, например, в OpenCV. Там он реализован различными методами и совершенно непонятно, чем аббревиатура PyrLK лучше или хуже обозначения Farneback или чего-нибудь в этом роде, да и придется поразбираться со смыслом параметров, которых в некоторых реализациях очень много. Причем, что интересно, эти алгоритмы как-то работают, в отличие от того, что мы написали сами. В чем же секрет?
Оптический поток (Optical flow) – технология, использующаяся в различных областях computer vision для определения сдвигов, сегментации, выделения объектов, компрессии видео. Однако если мы захотим его по-быстрому реализовать в своем проекте, прочитав про него на википедии или где-нибудь еще, то, скорее всего, очень быстро наткнемся на то, что он работает очень плохо и сбоит при определении сдвигов уже порядка 1-2 пикселей (по крайней мере так было у меня). Тогда обратимся к готовым реализациям, например, в OpenCV. Там он реализован различными методами и совершенно непонятно, чем аббревиатура PyrLK лучше или хуже обозначения Farneback или чего-нибудь в этом роде, да и придется поразбираться со смыслом параметров, которых в некоторых реализациях очень много. Причем, что интересно, эти алгоритмы как-то работают, в отличие от того, что мы написали сами. В чем же секрет?
Десятка лучших консольных команд
Взято с хабра: http://habrahabr.ru/post/198482/
Десятое место
Ввод последнего аргумента недавних команд. Удерживая ALT или ESC, с каждым нажатием на точку в строку ввода будут подставляться параметры предыдущих команд, начиная от недавно введенных к старым.
Комбинация 'ALT+.' или '<ESC> .'
Девятое место
Переинициализация терминала без завершения текущей сессии. Например, в случае когда в терминал были выведены двоичные данные и он перестал корректно работать.
reset
Восьмое место
Создает пустой файл. Уничтожает содержимое файла без его удаления.
> file.txt
Седьмое место
Запуск команды с пробелом перед ней не сохраняет ее в истории. Может пригодиться при передаче паролей программам в открытом виде.
<пробел>команда
Некоторые заметки о приведении типов в СиПлюсПлюс
АлёнаC++:
http://alenacpp.blogspot.ru/2005/08/c.html
http://alenacpp.blogspot.ru/2005/08/c.html
static_cast между указателями корректно, только если один из указателей - это указатель на void или если это приведение между объектами классов, где один класс является наследником другого. То есть для приведения к какому-либо типу от void*, который возвращает malloc, следует использовать static_cast.int * p = static_cast<int*>(malloc(100));
Если приведение не удалось, возникнет ошибка на этапе компиляции. Однако, если это приведение между указателями на объекты классов вниз по иерархии и оно не удалось, результат операции undefined. То есть, возможно такое приведение: static_cast<Derived*>(pBase), даже если pBase не указывает наDerived, но программа при этом будет вести себя странно.
Subscribe to:
Posts (Atom)