2016-09-21 2 views
0

Вы можете увидеть результат на изображении ниже. Исходное изображение - это только серый пиксель, результат должен быть таким, но размытым.странный gaussianBlur результат смещения умножения ядра, нежелательно дополненного.

Opencv не использует непосредственные соседние пиксели для Gaussian Blur, я предполагаю, что он делает своеобразное внутреннее дополнение. Почему это так, я понятия не имею, мое первоначальное предположение состояло в том, что он предполагает, что вектор имеет более одного канала, что не так. Вот как я создать резюме :: Маты для расчета и как я называю резюме :: 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); 

Изображение Resulting image

ответ

0

Fixed, он имеет все с моей, как я приказал мой вектор, я имел колонку major, cv :: Mat предполагает, что это большой порядок строк.

enter image description here

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