奇怪的 gaussianBlur 内核乘法结果偏移量被意外填充。
strange gaussianBlur result offset of kernel multiplication unwantedly padded.
您可以在下图中看到结果。原始图像只是一个灰色像素,结果应该是这样但是模糊了。
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);
图片
已修复,这与我如何排序向量有关,我有列专业,cv::Mat 假设它是行专业排序。
您可以在下图中看到结果。原始图像只是一个灰色像素,结果应该是这样但是模糊了。
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);
图片
已修复,这与我如何排序向量有关,我有列专业,cv::Mat 假设它是行专业排序。