《opencv实用探索·七》一文看懂图像卷积运算
1、图像卷积使用场景
图像卷积是图像处理中的一种常用的算法,它是一种基本的滤波技术,通过卷积核(也称为滤波器)对图像进行操作,使用场景如下:
模糊(Blur): 使用加权平均卷积核对图像进行卷积可以实现模糊效果。这对于去除图像中的噪声或减小细节可以很有帮助。
锐化(Sharpen): 锐化卷积核可以突出图像中的边缘,增强图像的细节。这对于使图像看起来更清晰和更有对比度很有用。
边缘检测(Edge Detection): 使用特定的卷积核,如Sobel、Prewitt或Laplacian等,可以检测图像中的边缘。这对于计算机视觉任务和物体识别非常重要。
浮雕效果: 通过使用浮雕卷积核,可以使图像看起来带有凹凸的感觉,类似于雕刻。
平滑和降噪: 卷积可以用于平滑图像,减少图像中的高频噪声。常见的平滑卷积核包括高斯核。
纹理分析: 通过使用不同类型的卷积核,可以提取图像中的纹理信息,用于纹理分析和分类任务。
图像增强: 卷积可以用于增强图像的特定特征,例如对比度、亮度或颜色。
运动模糊(Motion Blur): 使用特定的卷积核,可以模拟图像中的运动模糊,这对于一些图像合成和特效很有用。
下面是一些实现效果图:
图像模糊:

图像浮雕:

图像锐化

2、卷积运算计算方式
先定义一个卷积核,也被成为卷积模板或卷积窗口
注意:卷积核是一个nxn的矩阵,且n是一个奇数,这样卷积核才有一个中心点,卷积核中的每个数字都是一个权重。

从上图中可以看到定义了一个3x3的卷积核,且核内除了中心点权重为1,其他都为0
怎么计算加权平均?
下面定义一个原图像,我们先把卷积核放在图像任意一个位置。

这时候对卷积核覆盖在原图像中心点的像素进行加权平均:
(250*0 + 210*0 + 220*0 + 20*0 + 30*1 + 140*0 + 240*0 + 140*0 + 110*0) / (0+0+0+0+1+0+0+0+0) = 30
这时候经过卷积的原图像在第三行第四列的像素值置为30,说明图像中这个中心点的灰度值不受周围像素点的影响。卷积运算之后的灰度值仍然是它本身。
下面我们换一个卷积核:

依旧放在上面原图的那个位置,现在重新进行卷积运算:
(250/9 + 210/9 + 220/9 + 20/9 + 30/9 + 140/9 + 240/9 + 140/9 + 110/9) / (1/9+1/9+1/9+1/9+1/9+1/9+1/9+1/9+1/9) = 151
这时候经过卷积的原图像在第三行第四列的像素值置为151,说明图像中的这个像素灰度值已被周围像素点影响。
下图一张动图模拟了卷积核依次滑过原图像中每个像素点并依次对卷积核中心覆盖的那个像素点进行卷积运算。

需要注意的是图像在做卷积运算时需要花费一些时间,通常和卷积核的大小有关,卷积核越大卷积运算时间越长图像越模糊,一般情况下推荐使用3x3, 5x5和7x7卷积核对图像进行卷积运算。
下图是我们使用3x3卷积核对原图像进行滑行描扫,核中心走过的区域:

可以看到经过卷积运算后原图像从原来的12x12变为了10x10,因为3x3卷积核的中心无法做到对原图像的边缘进行卷积运算。那由此可以推断出如果我们使用5x5卷积核,图像将会从原来的12x12变为8x8,最外两层没有参与计算。如果这样的话图像的信息变会丢失,那么怎么让图像中所有的像素都参与卷积运算?
比如我们使用3x3卷积核,通常会在图像最外层添加一层像素,这样在用3x3卷积核滑动时卷积核中心就能扫到图像最外层像素。

图像卷积效果:
通过卷积运算,对图像进行模糊后,可以将图像中的高频噪声给过滤掉。因此,对图像的卷积运算也称为平滑或者滤波。卷积核也称为滤波器。
如果采用3x3卷积核,且只有核中心为1,其他都为0,那么原图卷积出来没有任何变化

如果我们把卷积核换成:

卷积后的图像开始变模糊

下图为对一张图片进行不同卷积核均值模糊后的结果,可以看到卷积核尺寸越大,图像越模糊。

通常,均值滤波采用的卷积核里面的权重都是1,求加权平均就等于求平均,在使用卷积核模糊图像时为了尽量保留图像原有的信息,卷积核中心的权值应该最高,越远离核中心的权值越小。这时候就应该考虑使用高斯滤波模糊图像,高斯模糊在平滑物体表面的同时,能够更好的保持图像的边缘和轮廓
参考信息:卷积神经网络

相关文章:
《opencv实用探索·七》一文看懂图像卷积运算
1、图像卷积使用场景 图像卷积是图像处理中的一种常用的算法,它是一种基本的滤波技术,通过卷积核(也称为滤波器)对图像进行操作,使用场景如下: 模糊(Blur): 使用加权平…...
RPA机器人如何确保敏感数据的安全性
数据资源作为数字化时代的关键要素,其重要性一直受到高度重视,由此,数据安全也成为企业和个人必须面对的重要问题。随着RPA技术在各个行业的广泛应用,其系统安全性也成了每个企业关注的重中之重。经验丰富的RPA专家可以有效地采取…...
微信号被封了怎么办
13-7 常在河边走,哪有不湿鞋,做为经常用微信做电商客服的,或者经常在微信上和顾客谈钱的,总是会被微信后台重点关注,一不小心就有可能被封号。 如果遇到太倒霉的时候,永久封号了,这个时候微信…...
关于 ls -s 输出文件大小的单位问题的讨论
自己看书正好看到这里,正纳闷呢,上网查了下,发现不是我自己在为这个问题感到困惑。 有个大哥提出一个问题: 问题标题: ls -s的单位到底是什么? man ls -s, --size print the alloca…...
JSON.stringify方法详解 后端接受JSON数据格式
1、方法定义:JSON.stringify(value, replacer, space) 参数说明: value:js对象 replacer:替换对象,可以是一个方法、对象或数组,将value按照替换规则展示。 space:填充参数,可以是数…...
vue请求如何按顺序执行
我们有时候会碰到这种情况,需要连续发送两个请求,第二个请求需要用第一个请求的某个返回值作为参数来作为第二个请求的请求参数。 但是存在一个问题:两个请求都是异步的,他并不按照我们期望的先后顺序来执行。 这时候就需要控制请…...
【java】编译时bug 项目启动前bug合集
文章目录 1. jdk8中 Optional orElseThrow 编译时报错java: 未报告的异常错误X; 必须对其进行捕获或声明以便抛出2. 启动项目时提示 Error running Application: Command line is too long. Shorten command line for Application or also for Spring Boot default configurati…...
Pytorch——多卡GPU训练与单卡GPU训练相互切换
部分深度学习网络默认是多卡并行训练的,由于某些原因,有时需要指定在某单卡上训练,最近遇到一个,这里总结如下。 目录 一、多卡训练1.1 修改配置文件1.2 修改主训练文件1.3 显卡使用情况 二、单卡训练2.1 修改配置文件2.2 显卡使…...
Github项目-CNNResnet9-残差神经网络水果多分类项目
ResNet-论文全文完整翻译注解 - 知乎 你必须要知道CNN模型:ResNet - 知乎 #!/usr/bin/env python # coding: utf-8 #https://github.com/SehajS/cnn-resnet-fruit-classification # # Classifying Fruits from their Images # # This project aims at creating a…...
学习感悟一己之言
学习感悟一己之言 学习上克服困难实际上是克服心理上或认识上的障碍的过程。所谓的理解,就是化陌生为熟悉。看不懂,一方面是因为接触的材料太陌生,即远离你当前的背景知识;另一方面是材料或讲述者的描述刻画不准确或晦涩不当。有了…...
【设计模式-2.3】创建型——原型模式
说明:本文介绍设计模式中,创建型中的原型模式; 飞机大战 创建型设计模式关注于对象的创建,原型模式也不例外。如简单工厂和工厂模式中提到过的飞机大战这个例子,游戏中飞机、坦克对象会创建许许多多的实例࿰…...
八大插入算法(有注释)
直接插入排序 //直接插入排序 void InsertSortingDirectly(int* nums,int numsSize){int j0;for(int i1;i<numsSize-1;i){//定义一个中间变量保存当前要插入的值int tempnums[i];//在前面已排好序的序列中,找到合适的位置插入for(ji-1;j>0;j--){if(nums[j]&g…...
【2】基于多设计模式下的同步异步日志系统
6. 相关技术知识补充 6.1 不定参函数 在初学C语⾔的时候,我们都⽤过printf函数进⾏打印。其中printf函数就是⼀个不定参函数,在函数内部可以根据格式化字符串中格式化字符分别获取不同的参数进⾏数据的格式化。 ⽽这种不定参函数在实际的使⽤中也⾮常…...
npm管理发布包-创建与发布
创建与发布 我们可以将自己开发的工具包发布到 npm 服务上,方便自己和其他开发者使用,操作步骤如下 创建文件夹,并创建文件indexjs,在文件中声明函数,使用 module.exports 暴露npm初始化工具包,package.j…...
基于Spring,SpringMVC,MyBatis的校园二手交易网站
文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于Spring,SpringMVC,MyBatis的校园二…...
酒店 KPI绩效考核指标及应用
“路遥知马力,日久见人心”,目前国内各类型酒店风起云涌,大有在市场竞争中一比高下之势,各路精英受经济型酒店低投入高回报的市场利益驱动,都分分抢占市场,从而使国内经济型酒店的数量不断增加,…...
WordPress两种方法实现上传媒体图片文件自动重命名
我们发布文章时,会上传一些图片、音频之类的文件。但是WordPress没有自动 给新上传文件重命名的功能,逐个文件去重命名那就太麻烦了,那么我们改如何自动给上传的媒体文件图片重命名呢? 我在网站搜索了些上WordPress上传媒体文件自…...
TZOJ 1405 An easy problem
翻译有些出错,但大概是那个意思 答案: #include <stdio.h> #include <ctype.h> //引用库函数isupper的头文件int main() {int T 0, i 0;scanf("%d", &T); //要输入的行数while (T--) //循环T次{char c;int y 0…...
SpringBoot+mysql+vue实现大学生健康档案管理系统前后端分离
一、项目简介 本项目是一套基于SpringBoot实现大学生健康档案管理系统,主要针对计算机相关专业的正在做bishe的学生和需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本等,该项目可以直接作为bishe使用。 项目都经过严格调试&#…...
CCC联盟数字车钥匙(三)——UWB MAC时间网格同步及Hopping
本文继续上一篇UWB MAC时间网格继续介绍UWB MAC中关于时间同步相关内容。 3、MAC时间网格同步 每个测距会话的定义都基于相对的指定时钟参考 U W B t i m e 0 k UWB^k_{time0} UWBtime0k,相对于发起者的内部时钟定义。 时钟参考 U W B t i m e 0 k UWB^k_{time0} …...
Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...
Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...
STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...
Linux nano命令的基本使用
参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...
人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent
安全大模型训练计划:基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标:为安全大模型创建高质量、去偏、符合伦理的训练数据集,涵盖安全相关任务(如有害内容检测、隐私保护、道德推理等)。 1.1 数据收集 描…...
【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制
目录 节点的功能承载层(GATT/Adv)局限性: 拓扑关系定向转发机制定向转发意义 CG 节点的功能 节点的功能由节点支持的特性和功能决定。所有节点都能够发送和接收网格消息。节点还可以选择支持一个或多个附加功能,如 Configuration …...
【Kafka】Kafka从入门到实战:构建高吞吐量分布式消息系统
Kafka从入门到实战:构建高吞吐量分布式消息系统 一、Kafka概述 Apache Kafka是一个分布式流处理平台,最初由LinkedIn开发,后成为Apache顶级项目。它被设计用于高吞吐量、低延迟的消息处理,能够处理来自多个生产者的海量数据,并将这些数据实时传递给消费者。 Kafka核心特…...
加密通信 + 行为分析:运营商行业安全防御体系重构
在数字经济蓬勃发展的时代,运营商作为信息通信网络的核心枢纽,承载着海量用户数据与关键业务传输,其安全防御体系的可靠性直接关乎国家安全、社会稳定与企业发展。随着网络攻击手段的不断升级,传统安全防护体系逐渐暴露出局限性&a…...
