news 2026/1/8 9:47:43

cv2.sqrBoxFilter 是 OpenCV 中用于计算像素邻域平方和的盒式滤波函数

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
cv2.sqrBoxFilter 是 OpenCV 中用于计算像素邻域平方和的盒式滤波函数

cv2.sqrBoxFilter 是 OpenCV 中用于计算像素邻域平方和的盒式滤波函数

代码

# -*- coding:utf-8 -*-importcv2 as cvimportnumpy as npimportsysif__name__=='__main__':# 读取图像并判断是否读取成功img=cv.imread('./images/eq.png', cv.IMREAD_ANYDEPTH)ifimg is None: print('Failed to read eq.png.')sys.exit()# 验证方框滤波算法的数组矩阵points=np.array([[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15],[16,17,18,19,20],[21,22,23,24,25]],dtype='float32')# 将图像转为float32类型的数据img_32=img.astype('float32')print("img_orign=.{}".format(img))img_32 /=255.0print("img_32=.{}".format(img_32))# 方框滤波cv.boxFilter()和cv.sqrBoxFilter()# 进行归一化img_box_norm=cv.boxFilter(img, -1,(3,3),anchor=(-1, -1),normalize=True)# 不进行归一化img_box=cv.boxFilter(img, -1,(3,3),anchor=(-1, -1),normalize=False)# 进行归一化points_sqr_norm=cv.sqrBoxFilter(points, -1,(3,3),anchor=(-1, -1),normalize=True,borderType=cv.BORDER_CONSTANT)img_sqr_norm=cv.sqrBoxFilter(img, -1,(3,3),anchor=(-1, -1),normalize=True,borderType=cv.BORDER_CONSTANT)# 不进行归一化points_sqr=cv.sqrBoxFilter(points, -1,(3,3),anchor=(-1, -1),normalize=False,borderType=cv.BORDER_CONSTANT)print("points_sqr=.{}".format(points_sqr))# 展示图像处理结果cv.imshow('Result(cv.boxFilter() NORM)', img_box_norm)cv.imshow('Result(cv.boxFilter()', img_box)cv.imshow('Result(cv.sqrBoxFilter() NORM', img_sqr_norm / np.max(img_sqr_norm))cv.imshow('Result(cv.sqrBoxFilter()', points_sqr / np.max(points_sqr))cv.waitKey(0)cv.destroyAllWindows()

cv2.sqrBoxFilter 是 OpenCV 中用于计算像素邻域平方和的盒式滤波函数,核心作用是快速统计图像局部区域的像素值平方和,常作为方差滤波、边缘检测、图像梯度计算等高级操作的基础(例如推导局部方差、标准差)。

函数基本语法

cv2.sqrBoxFilter(src, ddepth, ksize, dst=None, anchor=None, normalize=None, borderType=None)


返回值
返回与输入图像尺寸、通道数一致的输出图像(ndarray 格式),像素值为对应邻域的平方和(或归一化后的平方均值)。

核心原理


标准差图像中,亮区表示局部像素值波动大(边缘 / 纹理),暗区表示像素值均匀(平滑区域)。

关键注意事项

数据类型与溢出问题

输入为 uint8(0-255)时,像素平方最大值为 255²=65025,若核尺寸为 5×5,平方和最大值为 25×65025=1,625,625,远超 uint8 范围(0-255);
必须将 ddepth 设为 cv2.CV_32F/cv2.CV_64F,否则会导致值截断、结果错误。

与 cv2.boxFilter 的区别

边缘填充方式

默认 cv2.BORDER_DEFAULT(镜像填充)适合大多数场景;若需边缘用固定值填充(如黑色),可指定 borderType=cv2.BORDER_CONSTANT:
sqr_sum = cv2.sqrBoxFilter(img_float, cv2.CV_32F, (3,3), borderType=cv2.BORDER_CONSTANT)

非正方形核

核尺寸支持矩形(如 (7,3)),适用于定向统计(如水平方向平方和):

# 3(宽)×7(高)核,侧重水平方向的平方和统计sqr_sum_rect=cv2.sqrBoxFilter(img_float, cv2.CV_32F,(3,7))
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/20 2:30:19

工艺过程镜像系统:制造过程的数字孪生

在工业制造迈向智能化、数字化的浪潮中,精准掌控工艺过程、实时保障产品质量、高效管理生产任务成为企业提升竞争力的关键。蕴硕物联凭借深厚的技术积累与创新精神,精心打造的“工艺过程镜像系统”,为工业制造领域带来了一场变革性的突破。01…

作者头像 李华
网站建设 2025/12/20 6:16:11

小程序计算机毕设之基于springboot+微信小程序的影院售票系统设计与实现基于微信小程序的影院售票系统设计与实现(完整前后端代码+说明文档+LW,调试定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2025/12/19 21:16:52

创客匠人思辨:知识付费的终点——从“内容消费”到“数据资产共建”

知识付费行业正站在一个拐点上。用户为焦虑和信息差付费的初级阶段已经过去,单纯的“内容交付”越来越难以支撑可持续的商业模式。创客匠人观点中隐含了一条更深刻的线索:未来的知识服务,其价值闭环的终点可能不再是“交易完成”,…

作者头像 李华
网站建设 2025/12/20 4:57:07

从基础到进阶:CAD 框架下一步开发路线(新手实操版)

我们已经完成了 CAD 基础框架搭建和性能优化,现在你可能会问:“接下来该往哪个方向走?” 新手最忌 “贪多求全”(比如直接上手 3D 建模、复杂约束),也忌 “停滞不前”(只停留在画点线圆&#xf…

作者头像 李华
网站建设 2025/12/20 3:59:19

小程序计算机毕设之基于springboot的“智宠”一站式宠物服务小程序的设计与实现宠物医疗保健、宠物用品购买、宠物知识获取(完整前后端代码+说明文档+LW,调试定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/1/8 6:37:11

小程序计算机毕设之基于springboot的华兴书城微信小程序基于SpringBoot的微信小程序书店(完整前后端代码+说明文档+LW,调试定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华