2016-02-17 2 views
1

Я застрял на этом несколько дней, может быть, кто-то сможет мне помочь здесь.Проблема с режимом пограничного режима OpenCV с фильтром размытия

Я использую API OpenCV C++ для выполнения некоторой базовой обработки изображений. У меня есть шаг, где я хочу, чтобы размыть мое изображение и указать BORDER_WRAP как мой тип границы:

cv::blur(img, img, cv::Size(3, 3), cv::Point(-1, -1), cv::BORDER_WRAP); 

Но при выполнении моего кода, я получаю следующее сообщение об ошибке:

OpenCV Error: Assertion failed (columnBorderType != BORDER_WRAP)

Однако, все работает нормально при использовании других типов границ, (BORDER_REFLECT, например), но мне нужно BORDER_WRAP

вещи, кажется, работает, если я использую copyMakeBorder(img, img, 1, 1, 1, 1, cv::BORDER_WRAP) первый на моем изображении, размытие это новое изображение, а затем обрезать его обратно к размеру т он оригинальный, но все же я не могу понять, почему моя первая попытка не работает.

Кто-нибудь знает, как я могу это решить?

ответ

2

Вы не можете этого сделать. BORDER_WRAP не принимается всеми функциями - это действительно только для некоторых из них, и, как подтверждается утверждение, cv::blur не является одним из них.

Но, как вы уже выяснили, вы можете сначала использовать cv::copyMakeBorder, размыть это новое изображение и обрезать его до размера оригинала.

+0

поэтому, если функция/фильтр разрешает пограничные режимы напрямую, они не вызывают copyMakeBorder внутри, но используют режим границы неявно (и, следовательно, более эффективно)? – Micka

+0

@ Micka Я считаю, что встроенные фильтры opencv просто испускают ошибку утверждения Ошибка (как в этом случае) для тех конкретных режимов границы, которые не поддерживаются. Тогда вам решать (или любой сторонний разработчик библиотеки) решить, хотят ли они неявно вызывать cv :: copyMakeBorder или какую-то другую функцию в качестве работы. –

+0

no Я имел в виду, если какой-либо тип границы IS поддерживается фильтром, будет ли фильтр применять границу неявно, не копируя изображение и не добавляя границу явно? – Micka

Смежные вопросы