下の画像で結果を見ることができます。元の画像は単なる灰色のピクセルであり、結果はぼやけているはずです。
Opencv は、Gaussian Blur に隣接するピクセルを使用していません。何らかの内部パディングを行っていると思います。なぜそうしているのかはわかりませんが、最初の推測では、ベクトルに複数のチャネルがあると想定されていますが、そうではありません。計算用に 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);