Pull to refresh
31
0
Илья Лысенков @Billys

User

Send message
Да, мы тоже думали, что в изображениях всегда будут перекрытия, и удивились, когда оказалось иначе. Можно ли называть это панорамой или это должно называться как-то по-другому — вопрос чисто терминологический. Да, это получается уже другая задача, но это не делает её менее интересной. А зачем именно это нужно было Яндексу — можно только гадать. Может, просто хотел посмотреть, какие идеи смогут придумать участники, если нарушить стандартное условие о наличии перекрытий :)
Спасибо :) Мы тоже сначала думали, что, используя ключевые точки, задача решается тривиально. Но, как оказалось, во многих сериях нет перекрытий и здесь уже важны именно гистограммы.
Зачем это понадобилось Яндексу нам не известно. Если же говорить в целом, то подобную задачу (когда между изображениями панорамы нет пересечений) можно использовать, к примеру, для таких приложений:

  • Кластеризация фотографий по месту. Например, уехала компания друзей вместе в отпуск и каждый сделал кучу снимков. Будет удобно объединить все фотографии вместе, автоматически разбить на группы по тому месту, где были сделаны снимки, и получить единый альбом со структурированными фотографиями.
  • В результате работы над конкурсом получилась функция сравнения двух изображений. Её в принципе можно использовать, например для поиска по изображению: пользователь даёт своё изображение и система находит похожие снимки из базы. Причём могут будут найдены не только снимки, скажем, того же дома, но и с той же улицы.

А вообще мы тоже удивились как так вышло, что у Яндекса перепутались фотографии с Яндекс.Карт и им нужно их распутать :)
А также в эти 100k входит месяц работы 60 команд по всей России. Мы участвовали в конкурсе в свободное от работы время и на тот момент были студентами и недавними выпускниками, так что мы тоже остались довольны :)
Официальная документация находится здесь: docs.opencv.org/. По этому адресу всегда доступна документация по последней версии OpenCV — это как раз то, что вам нужно.
Эх, сколько дней прошло за этой игрой :-)

В неё даже вот так можно играть: www.youtube.com/watch?v=PD_eLZbltCs
Симметрия тоже очевидна:
Если A и A+2 — близнецы, то -A и -(A+2) тоже близнецы. Минус берём, естественно, по модулю произведения простых чисел.
А потом специально для современных школьников выйдет сборник «Все произведения школьной программы в очень кратком изложении».
Настоятельно рекомендую вам прочитать книгу М. Клайна "Математика. Утрата определённости" (или созвучную ей "Математика. Поиск истины"). Эта популярная книга как раз посвящена философским проблемам в основании математики. В ней вы найдёте частичные ответы на ваши вопросы, а так же ещё больше вопросов.
На тургоре она была в 2004 году
http://turgor.ru/25/turnir25.php#turnir25vos
(в самом низу страницы)
Так ведь Турнир Городов везде по одним задачам проводится.
Да, и особенно он сужается вокруг Хабра :-)
О, да у нас общее олимпиадное прошлое :-)
Решение именно этой задачи позволило попасть мне на летнюю конференцию Турнира Городов :-)
По-моему, вы смешиваете порядок элементов, в котором они хранятся в списке и порядок, который задаёт функция getnext (итераторы в коде работают с функцией getnext). Для устранения этой двусмысленности нужно заменить в условии список на массив.
Да, но getNext(last_element) должна же что-то вернуть (ну или хотя бы исключение бросить). Если бы мы всегда могли рассматривать результат как элемент списка, то случай без цикла был бы невозможен.
А какая возникает проблема?
После первой итерации p1 указывает на 2, p2 на 1
После второй (и последней) — p1 на 1, p2 на 1
Мы получили, что цикл есть.
1) По сути дела да. Просто я по хорошей привычке работаю с итераторами (указателями) и ++p1 означает перевести указатель на следующий элемент.
2) Условие будет верное, если цикла в списке нет.
iterator p1 = begin ();
iterator p2 = begin ();
do
{
if (getnext (*p2) == 0) break;
++p2;
if (getnext (*p2) == 0) break;
++p2;
++p1;
}
while (p1 != p2);
if (getnext (*p2) == 0) цикла нет
else цикл есть
1) Как осуществить проверку coun < n? N же не дано.
конечно же, надо
do
{
...
}
while (p1 != p2);
1

Information

Rating
Does not participate
Location
Нижний Новгород, Нижегородская обл., Россия
Date of birth
Registered
Activity