OpenCV图像滤波(2)均值平滑处理函数blur()的使用

  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

在OpenCV中,blur()函数用于对图像应用简单的均值模糊(mean blur)。这种模糊效果可以通过将图像中的每个像素替换为其邻域内所有像素的平均值来实现,从而达到平滑图像的目的。这对于去除图像中的噪声非常有用。

blur()函数使用归一化的盒形滤波器(normalized box filter)来平滑图像。这种滤波器对图像中的每个像素应用一个矩形核,大小为:

blur()函数的行为等同于调用boxFilter()函数.

函数原型

cpp 复制代码
void cv::blur	
(	
	InputArray 	src,
	OutputArray 	dst,
	Size 	ksize,
	Point 	anchor = Point(-1,-1),
	int 	borderType = BORDER_DEFAULT 
)		

参数

  • 参数 src:输入图像;它可以有任意数量的通道,这些通道会被独立处理,但是图像的深度应该为CV_8U、CV_16U、CV_16S、CV_32F或CV_64F.
  • 参数 dst :输出图像,其大小和类型与src相同。
  • 参数 ksize:模糊核的大小.
  • 参数 anchor:锚点位置;默认值Point(-1,-1)表示锚点位于核的中心。
  • 参数 borderType: 用于推算图像外部像素的边界模式,详情请参阅BorderTypes。BORDER_WRAP模式不支持。

代码示例

cpp 复制代码
#include <opencv2/opencv.hpp>
#include <iostream>

int main()
{
    // 读取图像
    cv::Mat src = cv::imread("/media/dingxin/data/study/OpenCV/sources/images/fruit_small.jpg");
    if (!src.data)
    {
        std::cerr << "Error: Image cannot be loaded.\n";
        return -1;
    }

    // 设置模糊参数
    cv::Size ksize(15, 15); // 15x15的内核大小
    cv::Mat dst;

    // 应用均值模糊
    cv::blur(src, dst, ksize);

    // 显示原图和处理后的图像
    cv::namedWindow("Original Image", cv::WINDOW_NORMAL);
    cv::imshow("Original Image", src);

    cv::namedWindow("Blurred Image", cv::WINDOW_NORMAL);
    cv::imshow("Blurred Image", dst);

    // 等待用户按键退出
    cv::waitKey(0);

    return 0;
}

运行结果

你可以修改代码中cv::Size ksize(15, 15); 中的内核大小,看看模糊的效果有什么差异,比如改成cv::Size ksize(5, 5);试试看。

相关推荐
想用offer打牌9 小时前
Spring AI vs Spring AI Alibaba
java·人工智能·后端·spring·系统架构
qwerasda1238529 小时前
车辆超载检测系统:基于YOLO11-C3k2-RFCAConv的高精度识别模型实现与性能评估_1
人工智能
Coco恺撒9 小时前
【脑机接口】难在哪里,【人工智能】如何破局(1.用户篇)
人工智能·深度学习·开源·生活·人机交互·智能家居
sunlifenger9 小时前
上海兆越人员定位系统,多元技术赋能,精准守护工业安全
网络·人工智能·安全
HXDGCL10 小时前
大会观察 | 破除创新链堵点:论“工厂直供”模式如何加速自动化核心部件迭代
大数据·人工智能·自动化·自动化生产线·环形导轨
梵得儿SHI10 小时前
(第八篇)Spring AI 核心技术攻坚:模型评估与调优 - 提升 AI 响应质量的双轮驱动实践
人工智能
果粒蹬i10 小时前
生成式 AI 质量控制:幻觉抑制与 RLHF 对齐技术详解
前端·人工智能·easyui
数据与后端架构提升之路10 小时前
实战:手搓一个“BEV 级”自动驾驶训练加速平台 —— 当 RTX 4090 遇上多模态数据
人工智能·机器学习·自动驾驶
互联网科技看点10 小时前
国产 CAD主机厂快速响应应用方案
人工智能
五度易链-区域产业数字化管理平台10 小时前
五度易链企业数据服务架构思考:从“存数据”到“用数据”的全周期解决方案
大数据·人工智能·架构