OpenCV学习方框滤波实现图像处理代码示例
作者:点云侠 发布时间:2023-02-08 17:17:43
标签:OpenCV,方框滤波,图像处理
一、方框滤波
方框滤波是均值滤波的一种形式。在均值滤波中,滤波结果的像素值是任意一个点的邻域平均值,等于各邻域像素值之和的均值,而在方框滤波中,可以自由选择是否对均值滤波的结果进行归一化,即可以自由选择滤波结果是邻域像素值之和的平均值,还是邻域像素值之和。
二、C++代码
#include <iostream>
#include <opencv2\opencv.hpp>
using namespace cv;
using namespace std;
int main()
{
//---------------------------用于方框滤波的图像--------------------
Mat img = imread("1.jpg");
if (img.empty())
{
cout << "请确认图像文件名称是否正确" << endl;
return -1;
}
//将CV_8U类型转换成CV_32F类型,避免计算后的数据过大
Mat equalImg_32F;
img.convertTo(equalImg_32F, CV_32F, 1.0 / 255);
Mat resultNorm, result, equalImg_32FSqr;
//--------------------------方框滤波boxFilter----------------------
boxFilter(img, resultNorm, -1, Size(3, 3), Point(-1, -1), true); // 进行归一化,则为均值滤波
boxFilter(img, result, -1, Size(3, 3), Point(-1, -1), false); // 不进行归一化
//----------------------方框滤波sqrBoxFilter()---------------------
//对每个像素数值的平方求和/求均值
sqrBoxFilter(equalImg_32F, equalImg_32FSqr, -1, Size(3, 3), Point(-1, -1), true, BORDER_CONSTANT);
//-------------------------显示处理结果----------------------------
imshow("原始图像", img);
imshow("归一化", resultNorm);
imshow("不归一化", result);
imshow("平方和求均值", equalImg_32FSqr);
waitKey(0);
return 0;
}
三、python代码
import cv2
import matplotlib.pyplot as plt
# 读取图片
img = cv2.imread('1.jpg')
# BGR转为RGB,方便plot函数显示
source = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# 方框滤波,True表示归一化,则效果与均值滤波相同。
result = cv2.boxFilter(source, -1, (5, 5), normalize=False)
# sqrBoxFilter实现对每个像素值的平方求和
# result1 = cv2.sqrBoxFilter(source, -1, (5, 5), normalize=True)
# 显示图形
titles = ['Source Image', 'BoxFilter Image']
images = [source, result]
for i in range(2):
plt.subplot(1, 2, i + 1), plt.imshow(images[i], 'gray')
plt.title(titles[i])
plt.xticks([]), plt.yticks([])
plt.show()
四、结果展示
1、原始图像
2、归一化
3、不归一化
4、平方和求均值
来源:https://blog.csdn.net/qq_36686437/article/details/120756451
0
投稿
猜你喜欢
- 一). ubuntu下mysql安装布局:/usr/bin  
- 对于web开来说,用户登陆、注册、文件上传等是最基础的功能,针对不同的web框架,相关的文章非常多,但搜索之后发现大多都不具有完整性,对于想
- 这篇文章主要介绍了python操作openpyxl导出Excel 设置单元格格式及合并处理代码实例,文中通过示例代码介绍的非常详细,对大家的
- 下载的数据是pascal voc2012的数据,已经有annotation了,不过是xml格式的,训练的模型是在Google模型的基础上加了
- 1.前期准备用户models.pyclass User(models.Model): username = mod
- 当鼠标滑过一个图片时,图片会变成另外一张图片的效果是怎么制作出来的呢?相对一些不熟悉HTML代码的朋友来说,可以使用网页编辑软件自带的动作来
- 今天修改之前实习小伙伴写的js代码的时候,遇到修改后页面未发生变化的问题。因为我是web开发小白,所以上网查了一波,得以解决~~初次进行we
- 1.在zend-studio中的项目explorer中右键-》import->选择svn->project from svn-》
- 数据库中提取长长的文章,总是有碍网页的排版布局。所以,想固定地提取一部分字符,然后后面有……替代。相关推荐:当标题不能显示完整的时候 1、原
- 问题某些无聊的脚本小子在Web页面表单中填入了“pýtĥöñ”这样的文本,我们
- 理解 CPU 工作原理,重要的是理解 pc 不停地自增地址,顺序执行程序指令。当遇到跳转指令时,会将 pc 重置为新地址。在顺序执行程序指令
- 本文实例讲述了Python使用matplotlib 模块scatter方法画散点图。分享给大家供大家参考,具体如下:# -*-coding:
- Python中对象的行为是由它的类型 (Type) 决定的。所谓类型就是支持某些特定的操作。数字对象在任何编程语言中都是基础元素,支持加、减
- python安装库时,有时候会报错windows error 5,可以尝试关闭所有使用python的编辑器、文件等,然后重新pip安装,如果
- 学习目标根据原型设计编译自动化数据生成器,熟悉wxPython的基本用法。界面原型设计界面原型设计分析输入参数:最大长度最小长度组成规则多少
- 程序出错的时候,我们往往需要根据异常信息来找到具体出错的代码。简单地用print打印异常信息并不能很好地追溯出错的代码:# -*- codi
- 我用FSO生成了unicode的文件,但这不是我想要的。FSO可以生成utf-8格式编码的html文件吗?用什么办法才能生成?FSO的编码问
- 映射类型 — dict字典可用多种方式来创建:使用花括号内以逗号分隔键: 值对的方式: {‘jack
- asp防止用户同时登陆的方法,实现这个功能可有两种方式:1.使用application用application对象:如果做的是大型社区,可能
- 最近用python写了一个远程监控的程序,主要功能有:1.用邮件控制所以功能2.可以对屏幕截图,屏幕截图发送到邮箱3.可以用摄像头获取图片,