странный результат смещения gaussianBlur нежелательного дополнения умножения ядра.

Вы можете увидеть результат на изображении ниже. Исходное изображение — просто серый пиксель, результат должен быть размытым.

Opencv не использует ближайшие соседние пиксели для размытия по Гауссу, я полагаю, что он выполняет какое-то внутреннее заполнение. Почему это так, я понятия не имею, мое первоначальное предположение было бы, что предполагается, что вектор имеет более одного канала, что не так. Вот как я создаю cv :: Mats для расчета и как я называю cv :: gausianBlurr

std::vector<float> sobelCopy (sobel);
cv::Mat sobel_mat_copy(height,
width,
CV_32F,
sobelCopy.data());

cv::Mat sobel_mat(height,
width,
CV_32F,
sobel.data());

cv::GaussianBlur(sobel_mat_copy, sobel_mat, cv::Size(3,3), 0.0, 0.0, cv::BORDER_CONSTANT);

Образ Результирующее изображение

0

Решение

Исправлено, все связано с тем, как я упорядочил вектор, у меня был главный столбец, cv :: Mat предполагает, что это упорядочение по главному ряду.

введите описание изображения здесь

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]