opencvblur函数(opencv lua)
简介
OpenCV 中的 blur 函数用于对图像进行模糊处理,以去除噪声或降低图像的细节级别。它使用指定类型的滤波器对图像的像素进行加权平均,生成平滑的输出图像。
多级标题
1. 函数声明
``` cv::blur(InputArray src, OutputArray dst, Size ksize, Point anchor=Point(-1,-1), int borderType=BORDER_DEFAULT) ```
2. 参数
src
- 输入图像。
dst
- 输出图像,与输入图像具有相同类型和大小。
ksize
- 滤波核的大小,以宽高形式指定。
anchor
- 锚点,指定滤波核的中心位置。默认值为 (-1, -1),表示滤波核的中心位于 (ksize.width - 1) / 2, (ksize.height - 1) / 2 处。
borderType
- 边界处理方式。默认值为 BORDER_DEFAULT,它将使用 OpenCV 中指定的默认边界处理方式。
3. 返回值
函数本身没有返回值。它将平滑后的图像写入 dst 输出数组中。
内容详细说明
blur 函数可以通过以下方式对图像进行模糊处理:
平均模糊:
使用每个像素周围的像素的简单平均值来计算新像素值。
高斯模糊:
使用高斯分布的加权平均值来计算新像素值,这会产生更平滑的结果。
中值模糊:
使用像素周围像素的中值作为新像素值,这有助于去除椒盐噪声。
双边模糊:
考虑像素之间的空间和颜色相似性的加权平均值,这有助于保留图像中的边缘。blur 函数还提供了不同的边界处理选项,例如:
BORDER_CONSTANT
:使用指定的常数值填充边界。
BORDER_REFLECT
:使用输入图像镜像边界。
BORDER_REFLECT_101
:使用输入图像镜像边界,然后反转每个像素行或列的顺序。
BORDER_REPLICATE
:使用输入图像的边界值填充边界。
BORDER_WRAP
:使用输入图像的一侧填充另一侧。
示例
以下示例展示了如何使用 blur 函数对图像进行高斯模糊:```
#include
**简介**OpenCV 中的 blur 函数用于对图像进行模糊处理,以去除噪声或降低图像的细节级别。它使用指定类型的滤波器对图像的像素进行加权平均,生成平滑的输出图像。**多级标题****1. 函数声明**``` cv::blur(InputArray src, OutputArray dst, Size ksize, Point anchor=Point(-1,-1), int borderType=BORDER_DEFAULT) ```**2. 参数*** **src** - 输入图像。 * **dst** - 输出图像,与输入图像具有相同类型和大小。 * **ksize** - 滤波核的大小,以宽高形式指定。 * **anchor** - 锚点,指定滤波核的中心位置。默认值为 (-1, -1),表示滤波核的中心位于 (ksize.width - 1) / 2, (ksize.height - 1) / 2 处。 * **borderType** - 边界处理方式。默认值为 BORDER_DEFAULT,它将使用 OpenCV 中指定的默认边界处理方式。**3. 返回值**函数本身没有返回值。它将平滑后的图像写入 dst 输出数组中。**内容详细说明**blur 函数可以通过以下方式对图像进行模糊处理:* **平均模糊:**使用每个像素周围的像素的简单平均值来计算新像素值。 * **高斯模糊:**使用高斯分布的加权平均值来计算新像素值,这会产生更平滑的结果。 * **中值模糊:**使用像素周围像素的中值作为新像素值,这有助于去除椒盐噪声。 * **双边模糊:**考虑像素之间的空间和颜色相似性的加权平均值,这有助于保留图像中的边缘。blur 函数还提供了不同的边界处理选项,例如:* **BORDER_CONSTANT**:使用指定的常数值填充边界。 * **BORDER_REFLECT**:使用输入图像镜像边界。 * **BORDER_REFLECT_101**:使用输入图像镜像边界,然后反转每个像素行或列的顺序。 * **BORDER_REPLICATE**:使用输入图像的边界值填充边界。 * **BORDER_WRAP**:使用输入图像的一侧填充另一侧。**示例**以下示例展示了如何使用 blur 函数对图像进行高斯模糊:```
include