图像平滑处理:cv::filter2D()函数详解

这篇具有很好参考价值的文章主要介绍了图像平滑处理:cv::filter2D()函数详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

cv::filter2D 函数可以对图像进行线性滤波。

函数可以对图像进行线性滤波。该函数使用指定的卷积核对输入图像进行卷积,以计算输出图像中每个像素的值。

该函数的原型如下:

void cv::filter2D(InputArray src, OutputArray dst, int ddepth, InputArray kernel, Point anchor = Point(-1,-1), double delta = 0, int borderType = BORDER_DEFAULT)

其中,src 参数表示输入图像,dst 参数表示输出图像,ddepth 参数表示输出图像的深度,kernel 参数表示卷积核,anchor 参数表示锚点,delta 参数表示在将结果存储到输出图像之前添加到每个像素的可选值,borderType 参数表示边界填充类型。每个参数具体的详细解析见下:

src:输入图像。
dst:输出图像,与输入图像大小和通道数相同。
ddepth:输出图像的深度,可以设置为 -1,表示与输入图像深度相同。
kernel:卷积核,用于对图像进行滤波。
anchor:锚点,表示卷积核中心的位置。默认值为 (-1,-1),表示卷积核中心位于卷积核的中心。
delta:在将结果存储到输出图像之前添加到每个像素的可选值。默认值为 0。
borderType:边界填充类型,用于指定如何处理边界像素。默认值为 cv::BORDER_DEFAULT。

参数ddepth表示的图像深度分别有:

CV_8U:8 位无符号整数。
CV_16U:16 位无符号整数。
CV_16S:16 位有符号整数。
CV_32F:32 位浮点数。
CV_64F:64 位浮点数。
此外,您还可以将 ddepth 参数设置为 -1,表示输出图像的深度与输入图像的深度相同。

参数borderType还有以下边界填充类型:

cv::BORDER_CONSTANT:使用常数填充边界。
cv::BORDER_REPLICATE:复制最后一个元素来填充边界。
cv::BORDER_REFLECT:在边界处反射图像内容来填充边界。
cv::BORDER_WRAP:在边界处环绕图像内容来填充边界。
cv::BORDER_REFLECT_101:与 cv::BORDER_REFLECT 类似,但在反射时不包括最后一个元素。
cv::BORDER_TRANSPARENT:忽略边界像素。
cv::BORDER_DEFAULT:默认值,等同于 cv::BORDER_REFLECT_101

下面是一个简单的示例,它展示了如何使用 cv::filter2D 函数对图像进行高斯模糊:

#include <opencv2/opencv.hpp>

int main() {
    cv::Mat src = cv::imread("image.jpg");  // 输入图片路径
    cv::Mat dst;
    cv::Mat kernel = (cv::Mat_<float>(3,3) << 1/16.0, 2/16.0, 1/16.0, 2/16.0, 4/16.0, 2/16.0, 1/16.0, 2/16.0, 1/16.0);
    cv::filter2D(src, dst, -1, kernel);
    cv::imshow("src", src);
    cv::imshow("dst", dst);
    cv::waitKey(0);
    return 0;
}

测试结果如下图所示:

图像平滑处理:cv::filter2D()函数详解文章来源地址https://www.toymoban.com/news/detail-513225.html

到了这里,关于图像平滑处理:cv::filter2D()函数详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OpenCV filter2D函数详解

            OpenCV filter2D将图像与内核进行卷积,将任意线性滤波器应用于图像。支持就地操作。当孔径部分位于图像之外时,该函数根据指定的边界模式插值异常像素值。         该函数实际上计算相关性,而不是卷积:   filter2D函数的原型如下:         void cv::filt

    2024年04月12日
    浏览(24)
  • opencv 31-图像平滑处理-方框滤波cv2.boxFilter()

    方框滤波(Box Filtering)是一种简单的图像平滑处理方法,它主要用于去除图像中的噪声和减少细节,同时保持图像的整体亮度分布。 方框滤波的原理很简单:对于图像中的每个像素,将其周围的一个固定大小的邻域内的像素值取平均,然后将这个平均值赋值给当前像素。这

    2024年02月14日
    浏览(32)
  • opencv-34 图像平滑处理-双边滤波cv2.bilateralFilter()

    双边滤波(BilateralFiltering)是一种图像处理滤波技术,用于平滑图像并同时保留边缘信息。与其他传统的线性滤波方法不同,双边滤波在考虑像素之间的空间距离之外,还考虑了像素之间的灰度值相似性。这使得双边滤波能够有效地去除噪声,同时保持图像的细节和边缘。

    2024年02月14日
    浏览(26)
  • opencv 30 -图像平滑处理01-均值滤波 cv2.blur()

    图像平滑处理(Image Smoothing)是一种图像处理技术,旨在减少图像中的噪声、去除细节并平滑图像的过渡部分。这种处理常用于预处理图像,以便在后续图像处理任务中获得更好的结果。 常用的图像平滑处理方法包括: 均值滤波(Mean Filtering) :用图像中像素周围区域的平

    2024年02月01日
    浏览(28)
  • opencv(15) 图像平滑处理之二:cv2.GaussianBlur()高斯滤波

    高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。 高斯模板是通过对二维高斯函数进行采样(高斯模糊的卷积核里的数值满足高斯分布)、量化并归一化得到的,它考虑了邻域像素位置的影响,距离当前被平滑像素越近的点,加权系数越大

    2024年02月10日
    浏览(34)
  • Open CV 图像处理基础:(五)Java 使用 Open CV 的绘图函数

    使用 Open CV 在 Java 中对图片使用绘图函数,分别绘制矩形、斜线、圆形、椭圆形以及添加文本 绘制矩形 参数说明: Mat img: 要绘制矩形的图像。 Point pt1: 矩形的一个顶点。 Point pt2: 与 pt1 相对的矩形的另一个顶点(不是矩形的对角线上的相邻顶点)。 Scalar color: 矩形的颜色。

    2024年02月02日
    浏览(38)
  • 【图像处理OpenCV(C++版)】——5.2 图像平滑之高斯平滑

    前言 : 😊😊😊 欢迎来到本博客 😊😊😊 🌟🌟🌟 本专栏主要结合OpenCV和C++来实现一些基本的图像处理算法并详细解释各参数含义,适用于平时学习、工作快速查询等,随时更新。 😊😊😊 具体食用方式:可以点击本专栏【OpenCV快速查找(更新中)】–搜索你要查询的算子

    2024年02月15日
    浏览(28)
  • (数字图像处理MATLAB+Python)第六章图像平滑-第一节:图像平滑概述和空间域平滑滤波

    图像平滑(Image Smoothing) :是一种数字图像处理技术,用于减少图像中的 噪声 和 不规则性 ,使图像更加平滑和连续。在图像中,噪声通常表现为不规则的、突出的像素值,这可能会导致图像细节丢失,使其难以进行分析和处理。图像平滑技术可以通过对像素值进行滤波来

    2023年04月24日
    浏览(31)
  • 【图像处理OpenCV(C++版)】——5.4 图像平滑之中值平滑(滤波)

    前言 : 😊😊😊 欢迎来到本博客 😊😊😊 🌟🌟🌟 本专栏主要结合OpenCV和C++来实现一些基本的图像处理算法并详细解释各参数含义,适用于平时学习、工作快速查询等,随时更新。 😊😊😊 具体食用方式:可以点击本专栏【OpenCV快速查找(更新中)】–搜索你要查询的算子

    2024年02月10日
    浏览(32)
  • 【图像处理OpenCV(C++版)】——5.3 图像平滑之均值平滑(滤波)

    前言 : 😊😊😊 欢迎来到本博客 😊😊😊 🌟🌟🌟 本专栏主要结合OpenCV和C++来实现一些基本的图像处理算法并详细解释各参数含义,适用于平时学习、工作快速查询等,随时更新。 😊😊😊 具体食用方式:可以点击本专栏【OpenCV快速查找(更新中)】–搜索你要查询的算子

    2024年02月04日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包