Используя Python и PyGTK у меня есть GtkMenu с различным GtkCheckMenuItems в нем. Когда пользователь нажимает один из флажков завершения меню. Я хотел бы за пользователя смочь проверить серию флажков без меню, закрывающего каждый раз.
Я посмотрел на использование активировать обратного вызова для показа меню, но это, кажется, не работает. Какие-либо предложения?
R не имеет встроенного средства для обработки переменных меток. Лично я думаю, что это недостаток, который надо исправить. Hmisc действительно предоставляет некоторое средство для обработки переменных меток, но метки распознаются только функциями в этом пакете. read.dta создает data.frame с атрибутом "var.labels", который содержит информацию о маркировке. Затем можно создать словарь данных.
> data(swiss)
> write.dta(swiss,swissfile <- tempfile())
> a <- read.dta(swissfile)
>
> var.labels <- attr(a,"var.labels")
>
> data.key <- data.frame(var.name=names(a),var.labels)
> data.key
var.name var.labels
1 Fertility Fertility
2 Agriculture Agriculture
3 Examination Examination
4 Education Education
5 Catholic Catholic
6 Infant_Mortality Infant.Mortality
Конечно, этот файл .dta имеет не очень интересные метки, но ваш должен быть более значимым.
-121--2333929-Ваша проблема вполне стандартна на местах.
необходимо откалибровать камеру. Это можно сделать в автономном режиме (что значительно упрощает жизнь ) или в оперативном режиме посредством самокалибровки.
Откалибруйте его в автономном режиме - пожалуйста.
После получения калибровочной матрицы камеры K определите проекционную матрицу камеры в последовательной сцене (необходимо использовать параллакс, как упомянуто другими). Это подробно описано в руководстве по OpenCV .
Вы должны будете использовать информацию GPS, чтобы найти относительную ориентацию между камерами в последовательных сценах (что может быть проблематично из-за шума, присущего большинству блоков GPS), то есть R и t , упомянутых в учебном пособии, или вращение и перемещение между двумя камерами.
Как только вы решите все это, вы получите две проекционные матрицы - представления камер на этих последовательных сценах. Используя одну из этих так называемых матриц камеры, можно "проецировать" точку 3D M на сцене на 2D изображение камеры на координату пикселя m (как в учебном пособии).
Мы используем это для триангуляции реальной точки 3D из точек 2D найденных в вашем видео.
используйте детектор процентных точек для отслеживания той же точки в вашем видео, которая лежит на интересующем объекте. Существует несколько доступных детекторов, я рекомендую SURF , так как у вас есть OpenCV, который также имеет несколько других детекторов, как Ши-Томази углов , Харрис , и т.д. .
после отслеживания точек объекта в последовательности и получения соответствующих координат 2D пикселей необходимо триангулировать для наиболее подходящей точки 3D с учетом матрицы проекции и точек 2D.
Вышеприведенное изображение хорошо фиксирует неопределенность и то, как вычисляется наиболее подходящая точка 3D. Конечно, в вашем случае камеры, вероятно, друг перед другом!
После получения точек 3D на объекте можно легко вычислить евклидово расстояние между центром камеры (которое в большинстве случаев является началом координат) и точкой.
Это, очевидно, не легко вещи, но это не так уж и трудно.Я рекомендую превосходную книгу Хартли и Зиссермана Multiple View Geometry , в которой все вышесказанное подробно описано с кодом MATLAB для загрузки.
Развлекайтесь и продолжайте задавать вопросы!
-121--1008139- Я вижу проблему здесь, «активировать»
сигнал не позволяет вернуть логическое значение относительно того, хотите ли вы, чтобы сигнал распространялся дальше. Звучит так, будто вам может понадобиться ткнуть вокруг внутренних устройств gtk.StartMireItem , запустить сигнал, который «снова открывает» меню в текущей позиции, подлежащей обработке, сразу после того, как сигнал «активировать»
закрыл меню, или попробовать список рассылки .
Вероятно, стоит отметить, что это скорее вопрос GTK +, чем вопрос PyGTK, поскольку я полагаю, что API PyGTK тесно отражает вопрос GTK +.
Попробуйте копаться в источнике и документацию. Я нашел это самым простым способом и лучшим ярлыком.