Именно так и получилось, как вы описали. Сначала прогнал align_image_stack, получил на выходе проект для hugin. А дальше hugin сохранил панораму в нескольких файлах, которые я затем склеил в GIF без каких либо правок.
Мне казалось в 21 веке технологии шагнули далеко вперед. Есть же алгоритмы выделения похожих точек на разных фотографиях и восстановления по этим точкам искаженной картинки. Хотелось бы что-нибудь в таком духе…
Пробовал устанавливать опции в разных комбинациях (/etc/default/grub):
GRUB_TERMINAL=console
GRUB_GFXPAYLOAD_LINUX=text
Есть подозрение на загрузку консоли после grub.
Спасибо за информацию! Как-то даже не подумалось, что это может быть проблемой Ubuntu Server. Вроде без иксов установлена, а поди ж ты! Вечером проверю.
Мне не понравилась работа garbage collector в питоне. Если просто вызывать из C++ питоновские функции и наоборот — ничего плохого не случится.
А вот если попытаться создать класс, который доступен как из питона, так и из C++ (с помощью boost/python), то начинается АД! Память утекает в самых неожиданных местах — это раз, удалить окончательно объект такого класса нельзя — это два. Все решает gc.
Второе: я не нашел способа создавать одновременно две и более изолированных виртуальных машин для питона. В Lua это доступно «из коробки».
В-третьих: Lua быстрее работает. Это объективное ощущение, бенчмарки не запускал — врать не буду.
У меня получился вот такой Makefile:
И остальные исходники:
blah.h
#ifndef __BLAH_H #define __BLAH_H class blah { public: int method(); }; extern blah object; #endif // __BLAH_Hblah.cpp
#include "blah.h" int blah::method() { return 1; } blah object;wrapper.h
#ifndef __WRAPPER_H #define __WRAPPER_H #ifdef __cplusplus extern "C" { #endif int wrapper_method(); #ifdef __cplusplus } #endif #endif // __WRAPPER_Hwrapper.cpp
#include "wrapper.h" #include "blah.h" int wrapper_method() { return object.method(); }main.c
#include "wrapper.h" #include <stdio.h> int main() { printf("%d\n", wrapper_method()); }