OpenCV图像滤波(19)计算图像每个像素点的邻域内的平方和函数sqrBoxFilter()的使用

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

算法描述

计算覆盖在滤波器上的像素值的平方和。

对于源图像中的每一个像素 (x, y),函数计算那些与放置在像素 (x, y) 上的滤波器重叠的邻域像素值的平方和。

未归一化的平方盒滤波器可用于计算局部图像统计量,如像素邻域内的局部方差和标准差。

sqrBoxFilter() 函数通常用于图像处理中,用于计算图像中每个像素点的邻域内的平方和。这种操作对于计算局部方差或协方差等统计量非常有用。在 OpenCV 中,sqrBoxFilter() 函数可以用来高效地计算这种平方和。

函数原型

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

参数

  • 参数src 输入图像。
  • 参数sdst 输出图像,与输入图像具有相同的尺寸和通道数。
  • 参数sddepth 输出图像的深度(-1 表示使用 src 的深度)。
  • 参数sksize 内核大小。
  • 参数anchor 内核的锚点位置,即内核的中心点。默认情况下,使用 Point(-1, -1) 表示锚点位于内核的中心。
  • 参数normalize 一个布尔标志,如果设置为 true,则结果会除以内核的面积进行归一化;如果为 false,则不进行归一化。
  • 参数borderType 边界处理方式,决定了如何处理图像边缘外的像素。BORDER_WRAP 不是一种支持的边界处理方式。

代码示例

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

int main()
{
    // 加载原始图像
    cv::Mat src = cv::imread("/media/dingxin/data/study/OpenCV/sources/images/erik.jpg", cv::IMREAD_GRAYSCALE);
    
    if (src.empty())
    {
        std::cout << "Could not open or find the image" << std::endl;
        return -1;
    }
    
    cv::Size sz2Sh( 400, 600 );
    cv::resize( src, src, sz2Sh, 0, 0, cv::INTER_LINEAR_EXACT );

    // 定义输出图像
    cv::Mat dst;
    
    // 设置内核大小
    cv::Size ksize(1, 1); //1x1 内核
    
    // 使用 sqrBoxFilter 计算每个像素邻域内的平方和
    cv::sqrBoxFilter(src, dst, CV_64F, ksize, cv::Point(-1, -1), false, cv::BORDER_DEFAULT);
    
    // 显示结果图像
    cv::imshow("original image", src);
    cv::imshow("Square Sum", dst);
    
    cv::waitKey();
    
    return 0;
}

运行结果

相关推荐
知几蜗牛1 分钟前
GPT-6 Astra来了:AI真的开始像“数字员工”一样工作了吗?
人工智能
夏文强3 分钟前
DeepSeek Harness 可观测性:用 OpenTelemetry 把会话遥测出去
人工智能·开源·大模型·agent·deepseek
艾莉丝努力练剑4 分钟前
【AI大模型接入SDK】Gemini模型接入知识体系
java·开发语言·网络·人工智能·网络协议·学习·http
AC赳赳老秦4 分钟前
电力能源公开数据采集实操:用 OpenClaw 合规抓取电网电价与发电量数据,生成区域能源供需分析报告
大数据·数据库·人工智能·python·php·deepseek·openclaw
一切皆是因缘际会6 分钟前
资源的适配
大数据·人工智能·算法
计算机编程-吉哥7 分钟前
小麦叶病害识别系统:基于MobileNet的智能农业病害检测实战【计算机毕业设计选题推荐、深度学习】
人工智能·深度学习·毕业设计·课程设计·计算机毕业设计选题·机器学习毕业设计·大数据毕业设计选题推荐
新知图书8 分钟前
第11章 智能体应用设计模式
人工智能·智能体
EDPJ10 分钟前
(2026|CVPR|安大,可学习正常/异常 token,空间感知交叉注意力)VisualAD:基于 ViT 的语言无关零样本异常检测
深度学习·计算机视觉·缺陷检测·异常检测
LlmCraft|大模型工程实践12 分钟前
09 大语言模型(LLM)演进与 Prompt 入门
人工智能·语言模型·prompt
刘广睿13 分钟前
AI 配音怎么做?语音合成 TTS 技术选型与本地部署实战(edge-tts / GPT-SoVITS / CosyVoice / Piper)
人工智能·音视频·效率工具·语音合成·tts