Перейти к содержимому
Compvision.ru
Romiks

Ускорение cvPyrMeanShiftFiltering

Recommended Posts

Можно ли как-нибудь ускорить cvPyrMeanShiftFiltering, время выполнения около 500мс, никуда не годится :thumbsd:

вызываю так:

cvPyrMeanShiftFiltering(dst, segm, 20, 40, 7);

грузит проц всего на 50%

OpenCV2.2

P.S. у меня видюхи Nvidia 8800GTS и на ноуте 9700M GT можно ли их заюзать для ускорения????

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Можно ли как-нибудь ускорить cvPyrMeanShiftFiltering, время выполнения около 500мс, никуда не годится :thumbsd:

вызываю так:

cvPyrMeanShiftFiltering(dst, segm, 20, 40, 7);

грузит проц всего на 50%

OpenCV2.2

P.S. у меня видюхи Nvidia 8800GTS и на ноуте 9700M GT можно ли их заюзать для ускорения????

Могу только ссылку подкинуть (без GPU): http://coewww.rutgers.edu/riul/research/code/EDISON/index.html

В opencv эта ф-ция пока не реализована на GPU.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

мне нужно именно в OpenCV, а если IPP подключить, это поможет? или как-нибудь сделать чтоб она использовала проц на 100%, ведь это ускорение почти в два раза!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

IPP и TBB теоретически должны помочь, но практически не замерял.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Потестил на стандартном примере, 50-70 процентов занято каждое ядро, при этом окно тормозит жутко.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Извиняюсь.

Удалил дубль, а исчезло 2 сообщения, что-то все таки не так с форумом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

сохранилось в буфере) да с форумом чёто не так, сначала не отправляется, потом уходит сразу два, гляньте логи на серваке, у меня частенько подбирают пароли к почтовым ящикам, наверно совсем оборзели

применил cvPyrSegmentation, результат намного лучше:)

пытаюсь повторить генератор комиксов - _http://robocraft.ru/blog/computervision/484.html

только в реальном времени, получилось но меня почемуто контуры цветные получаются, хотя делаю вроде всё также, незнаете как их сделать чёрными, как на картинке?

вот код:

cvSmooth(frame, frame);

cvSplit(frame, b, g, r, 0);


cvCanny(b, cb, tresh_one, tresh_two);

cvCanny(g, cg, tresh_one, tresh_two);

cvCanny(r, cr, tresh_one, tresh_two);


cvSub(b, cb, cb);

cvSub(g, cg, cg);

cvSub(r, cr, cr);


cvMerge(cb, cg, cr, 0, dst);


cvPyrSegmentation(dst, segm, storage, &comp, level, pyr_tresh_one, pyr_tresh_two);

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Может не cvSub, а cvAnd инвертированного результата cvCanny с каждым слоем делать. Он и выгрызет лишнее.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

с And прикольный результат, остались только контуры, без изображения, и всё равно цветные

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

с And прикольный результат, остались только контуры, без изображения, и всё равно цветные

Вот их и вычесть :)

А вообще, я написал с инвертированным результатом Canny .

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

вот так:?

cvCanny(b, cb, tresh_one, tresh_two);

cvCanny(g, cg, tresh_one, tresh_two);

cvCanny(r, cr, tresh_one, tresh_two);


cvInvert(cb, cb);

cvInvert(cg, cg);

cvInvert(cr, cr);


cvSub(b, cb, cb);

cvSub(g, cg, cg);

cvSub(r, cr, cr);

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

неа :) cvInvert это инверсия матрицы, это для решения систем линейных уравнений.

Там нужно использовать что то типа cvAbsDiffS со значением равным значению контуров Canny.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

всё сделал, не стал парится с поиском нужной функции, просто написал свою, ищу контуры на сегментированном ч/б изображении и рисую их на цветном, всё оказалось проще простого!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

вот екзешник, если кому надо, спс за советы (только тут без сохранения кадров пока)

Comics.zip

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

вот екзешник, если кому надо, спс за советы (только тут без сохранения кадров пока)

Заменил DLL-ки на свои с TBB и IPP скорость та-же ~2-3 кадра в секунду на разрешении 640х480.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

тупой вопрос, но как использовать GetOpenFileName чтобы загрузить картинку выбрав её с помощью диалога?

ни один пример не работает, ваще туплю седне, чем проще задача тем дольше я над ней парюсь :crazysmile::crazysmile: :crazysmile:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

тупой вопрос, но как использовать GetOpenFileName чтобы загрузить картинку выбрав её с помощью диалога?

ни один пример не работает, ваще туплю седне, чем проще задача тем дольше я над ней парюсь :crazysmile::crazysmile: :crazysmile:

MSDN-овский пример тоже не работает?

Что конкретно не пашет?

Кстати, там Unicode вроде.

Скорее всего больше подойдет GetOpenFileNameA.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

кое как сделал чтоб ваще работало, но с русскими символами не работает

вот до такого извращения додумался:

wchar_t fn[512];

fn[0] = '\0';

fn[1] = '\0';

ofn.lpstrFile = fn
; ...
GetOpenFileName(&ofn);

char *flnm = new char[512];

for(int i = 0; i < 512; ++i)

	flnm[i] = fn[i];

flnm[511] = '\0';

cout << flnm;

maybe = cvLoadImage(flnm);

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А если GetOpenFileNameA использовать, она не w_char, а char строку должна выдавать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

вот последняя версия, если запустить PhotoMode.bat то будет обрабатываться фотка а не видео с камеры, Enter сохранить кадр или фотку, O открыть новую фотку, если фотка больше 640x480 то она ужимается, и обрабатывается в сжатом видео но при сохранении обрабатывается фотка в полном разрешении с теме-же параметрами, большая фотка при сохранении обрабатывается секунд 5-10

исходник: http://locv.ru/wiki/Comics

comics.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

смотрю, вам тоже очень понравились получающиеся "комиксы" :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×