OpenCV-20卷积操作

news2024/11/24 15:39:03

一、什么是图像卷积

图像卷积就是卷积在图像上按照滑动遍历像素时不断的相乘求和的过程。

绿色为图片, 黄色为卷积核, 粉色为最终得到的卷积特征。

二、步长

步长就是卷积核在图像上移动的步幅,每次移动一个方格则步幅为1。且一般为1。

若步长越大,则 中间的像素点得不到扫描,最终的图像会更小一点。

三、padding

如果需要保持图片大小不变,我们需要在图片周围填充0.

padding指的就是填充0的层数。

 我们可以通过公式计算需要填充的0的圈数。

输入体积大小:H1*W1*D1(分别为高度、宽度和通道数)

四个超参数:Filter数量K; (卷积核数量)

                      Filter大小F;   (一般为基数 3*3, 5*5, 7*7)

                      步长S;

                      零填充大小P;

输出体积大小H2 * W2 * D2

H2 = (H1 - F + 2P) / S +1

W2 = (W1 - F + 2P) / S +1

D2 = K

如果要保持卷积之后的图片大小不变,可以得到等式:(N+2P-F+1) = N

从而推导出:P = (F-1) / 2   (默认S=1)

 四、卷积核的大小

图片卷积中,卷积核一般为奇数,比如3*3, 5*5, 7*7,原因如下:

1)根据上面padding的公式,如果要保持图片大小不变,采用偶数卷积核的话,比如4*4,将会出现填充1.5圈0的情况。

2)奇数维度的过滤器由中心,便于指出过滤器的位置,即OpenCV卷积中的锚点。

五、卷积案例

使用API---fifter2D(src, ddepth, kernel [, dst [,anchor[, delta[, borderType]]])

-- ddepth是卷积之后图片的位深,即卷积之后的图片的数据类型,一般为-1,表示与原图一致。

-- kernel 是卷积核的大小,用元组或者ndarray表示,要求数据类型必须为float型。

-- anchor 锚点,即卷积核的中心点,是可选参数,默认是(-1, -1)

-- delta可选参数,表示卷积之后额外加的一个值,相当于线性方程中的偏差,默认为0。

-- borderType 边界类型,一般不设置。

网络上有许多图片处理的卷积核

示例代码如下:

import cv2
import numpy as np

dog = cv2.imread("dog.png")

# 卷积核
# kernel = np.ones((5, 5),np.float32) / 25   # 相当于所有点/25取平均值,图片变得模糊
# 尝试其他的卷积核
kernel = np.array([[-1, -1, -1], [-1, 8, -1], [-1, -1, -1]])

# 卷积操作
new_dog = cv2.filter2D(dog, -1, kernel)
cv2.imshow("dog", dog)
cv2.imshow("new_dog", new_dog)
cv2.waitKey(0)
cv2.destroyAllWindows()

输出结果如下:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1373940.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【hyperledger-fabric】搭建多机网络二进制安装部署Orderer节点

简介 根据b站教学视频去学习搭建多机网络二进制安装部署Orderer节点时遇到了一些问题,在这里对这些小问题进行处理。 问题描述以及解决方案 问题描述:日志报错信息Failed pulling the last config block: retry attempts exhausted channelfabric-cha…

计算机组成原理之计算机硬件发展和计算机系统的组成

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需…

1.11寒假集训

A: 解题思路&#xff1a; 这题看示例不难发现&#xff0c;答案就是a * b的每一项的和&#xff0c;例如111 111就是111*&#xff08;1 1 1&#xff09; 333,知道后此题就迎刃而解了 下面是c代码&#xff1a; #include<iostream> using namespace std; int main() {in…

Cesium 实战 - 模型亮度调整,自定义着色器(CustomShader)完美解决模型太暗的问题

Cesium 实战 - 自定义视频标签展示视频 模型变暗问题以往通过光线解决问题模型变暗原理解决问题完整代码在线示例在 Cesium 项目中,添加模型是比较基础的功能,Cesium 支持 glTF(GBL) 格式。 在实际应用中,经常会遇到模型特别暗的情况,对比而言,其他三维环境添加是正常的…

Vs2019安装教程

1、下载链接&#xff1a;Visual Studio 较旧的下载 - 2019、2017、2015 和以前的版本 (microsoft.com)https://visualstudio.microsoft.com/zh-hans/vs/older-downloads/2、下载 而后跟进安装&#xff1a;&#xff08;虽然这是2022的&#xff0c;但是和2022和2019基本差不多&am…

【C++】C++11中的常见语法(上)

C11 一、C11简介二、统一的列表初始化1.&#xff5b;&#xff5d;初始化2. std::initializer_list 三、声明1. auto2. decltype3. nullptr 四、右值引用和移动语义1. 左值引用和右值引用2. 左值引用与右值引用比较3. 右值引用使用场景和意义4. 右值引用引用左值及其一些更深入的…

Java基于云计算的云HIS源码 云部署模式,可支持多家医院共同使用

Java基于云计算技术的B/S架构医院信息管理系统(简称云HIS)&#xff0c;采用前后端分离架构&#xff0c;前端由Angular、JavaScript开发&#xff1b;后端使用Java语言开发。功能包括门诊、住院、收费、电子病历、药品药房、药库、财务、统计等模块&#xff0c;支持医保接口。系统…

科技创新领航 ,安川运动控制器为工业自动化赋能助力

迈入工业4.0时代&#xff0c;工业自动化的不断发展&#xff0c;让高精度运动控制成为制造业高质量发展的重要技术手段。北京北成新控伺服技术有限公司作为一家集工业自动化产品销售、系统设计、开发、服务于一体的高新技术企业&#xff0c;其引进推出的运动控制产品一直以卓越的…

【rk3568】01-环境搭建

文章目录 1.开发板介绍1.1相关资源&#xff1a;1.2接口布局1.3屏幕1.4核心板引脚可复用资源 2.环境搭建2.1安装依赖包2.2git配置2.3安装sdk2.4sdk介绍2.5sdk编译 3.镜像介绍 1.开发板介绍 开发板&#xff1a;atk-rk3568开发板 eMMC&#xff1a;64G LPDDR4&#xff1a;4G 显示屏…

【数据结构】——期末复习题题库(8)

&#x1f383;个人专栏&#xff1a; &#x1f42c; 算法设计与分析&#xff1a;算法设计与分析_IT闫的博客-CSDN博客 &#x1f433;Java基础&#xff1a;Java基础_IT闫的博客-CSDN博客 &#x1f40b;c语言&#xff1a;c语言_IT闫的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…

RTK及其相关概念扫盲

RTK 载波相位 载波相位测量是一种精确的距离测量技术&#xff0c;常用于全球定位系统&#xff08;GPS&#xff09;和其他卫星导航系统。这种方法的基本原理涉及以下几个关键步骤&#xff1a; 载波信号的发射与接收&#xff1a;载波信号是一种高频的电磁波&#xff0c;由卫星发…

如何上传苹果ipa安装包?

目录 引言 摘要 第二步&#xff1a;打开appuploader工具 第二步&#xff1a;打开appuploader工具&#xff0c;第二步&#xff1a;打开appuploader工具 第五步&#xff1a;交付应用程序&#xff0c;在iTunes Connect中查看应用程序 总结 引言 在将应用程序上架到苹果应用…

什么牌子护眼灯好,防蓝光?安利防蓝光好用的护眼台灯

在我们小时候&#xff0c;并没有护眼灯这一概念&#xff0c;写作业的主要光源还是家中的白炽灯&#xff0c;有条件的会在桌上摆个台灯&#xff0c;但室内环境仍显得比较昏暗。如今的孩子学习环境相比我们小时候有了很大升级&#xff0c;家长对视力健康也更重视&#xff0c;护眼…

操作系统导论-课后作业-ch5

关于man的使用 man 系统参考手册 man n name 在系统手册第n章查看name1. 代码&#xff1a; #include <stdio.h> #include <sys/types.h> #include <unistd.h> #include <sys/wait.h>int main() {int x 100;int rc fork();if (rc -1) {fprintf…

微信/QQ/百度网盘/QQ邮箱上传附件/网络上传文件很慢怎么办?

文章目录 前言解决 前言 继上一次遇到这个问题没几天&#xff0c;期间也断断续续遇到过一点 以为还是因为硬件原因&#xff0c;再一次进行长按关机键放静电&#xff0c;但是这次就没有效果了&#xff0c;上传还是超级慢。 此时我就以为我的电脑坏了&#xff0c;差点拿去修 直到…

武汉灰京文化:跨平台游戏的崛起,破壁无界,畅游全场!

随着科技的飞速发展&#xff0c;游戏平台之间的界限逐渐模糊&#xff0c;许多优秀的游戏已经不再只局限于单一的游戏设备平台。无论你身处何处&#xff0c;只要有网络连接&#xff0c;你就可以随时随地畅玩自己喜欢的游戏&#xff0c;而无需更换设备或重新安装&#xff0c;这无…

缓存代理服务器

1 缓存代理 1.1 缓存代理的概述 web代理的作用 缓存网页对象&#xff0c;减少重复请求 存储一些之前被访问的或且可能将要备再次访问的静态网页资源对象&#xff0c;使用户可以直接从缓存代理服务器获取资源&#xff0c;从而减少上游原始服务器的负载压力&#xff0c;加快整…

算法与数据结构--最小生成树算法

一.应用的场景 类似于这种最小成本问题&#xff0c;实际上就是计算加权图把所有点连起来权重之和最小值的时候是怎么连接的。类似的问题还有最短耗时之类的问题。 二.最小生成树的定义 生成树&#xff1a; 图的生成树是它的一颗含有其所有顶点的无环连通子图。 【简单说就是所…

Apache ActiveMQ RCE CNVD-2023-69477 CVE-2023-46604

漏洞简介 Apache ActiveMQ官方发布新版本&#xff0c;修复了一个远程代码执行漏洞&#xff0c;攻击者可构造恶意请求通过Apache ActiveMQ的61616端口发送恶意数据导致远程代码执行&#xff0c;从而完全控制Apache ActiveMQ服务器。 影响版本 Apache ActiveMQ 5.18.0 before 5.1…

ssh | OpenSSH - with TCP port forwarding | ssh通过 tcp转发数据 | ssh 隧道

讲的会有点啰嗦 一次抓包 发现的问题 tcpdump -vvv -X -n -i any -s0 host “xx.xx.xx.xx” and port 22 -w xxx.pcap 然后从数据中发现了一问题&#xff0c;总所周知&#xff0c;ssh 通过加密的方式传递数据 多以 也会把 ssh 当作隧道 通信 然后在抓的数据中发现了一些 tcp协议…