图像基础算法学习笔记

目录

概要

一、图像采集

二、图像标注

四、图像几何变换

五、图像边缘检测

Sobel算子

Scharrt算子

Laplacian算子

Canny边缘检测

六、形态学转换


概要

参考书籍:《机器视觉与人工智能应用开发技术》 廖建尚,钟君柳 出版时间:2024-02-01

  1. 图像采集
  2. 图像标注:绘制直线、矩阵、圆形、椭圆和多边形
  3. 图像灰度转换:灰度化、二值化等图像转换方法
  4. 图像几何变换:图像旋转、图像镜像、图像缩放、图像透视等方法
  5. 图像边缘检测:Sobel算子、Scharr算子、Laplacian算子、Canny算子等边缘检测算子
  6. 形态学转换:图像腐蚀、膨胀、开运算、闭运算等形态学转换方法
  7. 图像轮廓提取:提取轮廓的凸包、外接矩形、最小外接矩形、最小外接圆等方法
  8. 直方图均衡:绘制直方图、均衡化直方图、自适应均衡化直方图等方法
  9. 模板匹配:模板匹配方法
  10. 霍夫变换:直线检测、圆检测等方法
  11. 图像矫正:图像矫正方法
  12. 图像添加文字和水印:图像添加文字和水印的方法
  13. 图像去噪:方框滤波、均值滤波、高斯滤波、高斯双边滤波、中值滤波等消除噪声方法

一、图像采集

图像的基本概念

  • 图像是由一个个点组成的,每一个点即一个像素。像素是图像的基本单元,每个像素都由明确数值来表示当前坐标点的颜色或灰度。
  • 在数字设备中,图像是由像素组成的二维或三维矩阵,常见的图片格式包括:JPEG、PNG、BMP等。
  • 视频则是由多张图片组成的序列,由于人眼存在视觉暂留效应,当图像以每秒超过24帧的速率显示时,静态画面会呈现出平滑连续变化的效果,这样的连续画面即为视频。常见的视频格式包括AVI、MP4、MOV等。
  • 图像分辨率,是指每英寸长度内有多少个像素,一张1920x1080的图像,1920是指该图像额宽度方向上有1920个像素,1080是指该图像的高度方向上有1080个像素。

OpenCV视频处理接口VideoCapture

图像处理接口imread、imshow、imwrite

二、图像标注

画直线(cv2.line):根据给出的起点终点绘制两点之间的线条

画矩形(cv2.rectangle):根据矩形的左上角位置坐标右下角位置坐标绘制矩形

画圆形(cv2.circle):根据给定的圆心半径绘制圆

画椭圆(cv2.ellipse)

四、图像几何变换

图像旋转(cv2.warpAffine):以图像的中心为原点旋转一定的角度,即将图像上的所有像素都旋转一个相同的角度。图像经过旋转之后,其位置会发生变化,旋转后既可以把转出显示区域的图像截去,也可以扩大显示区域的图像范围以显示图像的全部内容。 

图像镜像(cv2.flip):是一种与人们日常生活密切相关的变换,图像镜像是指原始图像相对于某一参照面旋转180°的图像。镜像变换又称为对称变换,分为水平镜像、垂直镜像、对角镜像等。镜像变换后,图像的宽和高不变。

水平镜像:以图像的垂直中轴线为中心,将图像分为左右两部分后进行对称变换。

垂直镜像:以图像的水平中轴线为中心,将图像分为上下两部分后进行对称变换。

对角镜像:将图像以水平中轴线和垂直中轴线的交点为中心进行对称交换,相当于将图像先后进行水平镜像和垂直镜像。

图像缩放(cv2.resize):将指定的图像在x方向和y方向按相同的比例进行缩放,从而获得一幅新的图片,称为全比例缩放。

如果x方向和y方向的缩放比例不同,则图像的比例缩放会改变原始图像像素间的相对位置,产生几何畸变。

在图像缩放过程中,涉及图像数据的删除与增加。若比例缩放所产生的图像中的像素在原始图像中没有相对应的像素时,特别在图像放大时,则需要考虑如何在放大后的空隙中加入新的图像颜色数据,增加颜色数据的方法主要根据周围相邻像素的颜色值进行插值计算。主要有3种插值方法:最近邻插值法、双线性插值方法、三次内插法

  • 最近邻插值法:新增加像素的灰度等于距它最近的像素的灰度。
  • 双线性插值方法:新增加像素的灰度由其周围4个像素的灰度决定。
  • 三次内插法:新增加的像素不仅考虑直接邻近点对它的影响,还需要考虑周围16个邻近灰度对它的影响。

五、图像边缘检测

边缘检测是图像处理和计算机视觉中的基本应用,边缘检测的目的是标识数字图像中亮度变化明显的点

图像属性的显著变化通常反应了属性的重要事件和变化,通过图像边缘检测可以大幅地减少数据量,并剔除不想关的信息,保留了图像重要的结构属性

经典的图像边缘检测算子有:Sobel算子、Scharr算子、Laplacian算子、Canny算子。

Sobel算子

一种离散的微分算子,该算子结合了高斯平滑和微分求导运算,利用局部差分寻找边缘,计算结果是梯度的一个近似值。Sobel算子利用周围邻域8个像素来估计中心像素的梯度,但Sobel算子认为靠近中心的像素应该给予更高的权重。Sobel算子的边缘检测卷积核如下图:

Scharrt算子

Scharr算子与Sobel算子的运算方式类似,分别计算x方向或y方向的图像差分。可以说,Scharr算子是Sobel算子的改进。Scharr算子运算准确度更高、效果更好。Scharr算子的边缘检测卷积核如下图:

Laplacian算子

Laplacian算子是图像邻域内像素灰度差分计算的基础,是一种通过二阶微分推导图像邻域增强算法。

Laplacian算子的基本思想是当邻域的中心像素灰度低于它所在邻域内的其他像素的平均灰度时,此中心像素的灰度应该进一步降低;当高于时进一步提高中心像素的灰度,从而实现锐化处理。二阶微分卷积核如下图:

Canny边缘检测

Canny边缘检测是当今最流行的边缘检测方法之一,非常强大和灵活,该方法主要过程如下:

  1. 降噪。原始图像的像素通常会导致噪声边缘,因此在计算边缘之前减少噪声很重要。在Canny边缘检测中,高斯模糊过滤器用于从本质上去除或最小化可能导致不良边缘的不必要细节。
  2. 计算图像的强度梯度。图像平滑(模糊)后,先使用Sobel算子进行水平和垂直过滤,再使用这些过滤操作的结果来计算每个像素的强度梯度。
  3. 抑制假边。在降低噪声和计算强度梯度后,使用一种称为边缘非最大抑制的技术来过滤掉不必要的像素(实际上可能并不构成边缘),因此要在正负梯度方向上将每个像素与其相邻的像素进行比较。如果当前像素的梯度大于其相邻像素,则保持不变;否则将当前的梯度设置为零。
  4. 滞后阈值。在Canny边缘检测的最后中,对梯度与两个阈值进行比较。

六、形态学转换

常用的形态学转换有四种:腐蚀、膨胀、开运算、闭运算

腐蚀(cv2.erode):一种消除边界点,使边界向内部收缩的过程。腐蚀的目的是把目标区域范围“变小”,可以用来消除小且无意义的物体。

膨胀(cv2.dilate):膨胀和腐蚀是一对相反的操作,将与物体接触的所有背景点合并到该物体中,使物体边界向外部扩张

开运算(cv2.morphologyEx)先腐蚀后膨胀的过程称为开运算,用来消除小物体、在纤细点处分离物体,可以在不明显改变物体表面积的情况下平滑物体的边界。一般会使对象的轮廓变得光滑、断开狭窄的间隙和消除细的突出物。

闭运算(cv2.morphologyEx)先膨胀后腐蚀的过程称为闭运算,用来填充物体内的细小空洞、连接邻近物体,可以在不明显改变物体表面积的情况下平滑物体的边界。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

排序算法 -归并排序

文章目录 1. 归并排序(Merge Sort)1.1 简介1.2 归并排序的步骤1.3 归并排序c 语言实现代码说明 1.4 时间复杂度1.5 空间复杂度1.6 动画 1. 归并排序(Merge Sort) 1.1 简介 归并排序(Merge Sort)是一种基于…

wireshark 基础

wireshark 基础 一、wireshark介绍 Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是捕获网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换…

GIT 入门详解指南

前言: 注:本博客仅用于记录本人学习过程中对git的理解,仅供学习参考,如有异议请自行查资料求证 安装 使用git之前必须完成git的安装,Git 目前支持 Linux/Unix、Solaris、Mac和 Windows 平台上运行 git 安装教程 基本…

从 IDC 到云原生:稳定性提升 100%,成本下降 50%,热联集团的数字化转型与未来展望

作者:金峰(项良)、朱永林、赵世振(寰奕) 公司简介 杭州热联集团股份有限公司成立于 1997 年 10 月,是隶属杭州市实业投资集团的国有控股公司。公司专业从事国际、国内钢铁贸易黑色大宗商品及产业服务&…

【微软:多模态基础模型】(4)统一视觉模型

欢迎关注[【youcans的AGI学习笔记】](https://blog.csdn.net/youcans/category_12244543.html)原创作品 【微软:多模态基础模型】(1)从专家到通用助手 【微软:多模态基础模型】(2)视觉理解 【微…

机器学习——期末复习 重点题归纳

第一题 问题描述 现有如下数据样本: 编号色泽敲声甜度好瓜1乌黑浊响高是2浅白沉闷低否3青绿清脆中是4浅白浊响低否 (1)根据上表,给出属于对应假设空间的3个不同假设。若某种算法的归纳偏好为“适应情形尽可能少”,…

Web3浪潮下的区块链应用:从理论到实践的全面解析

随着Web3的兴起,区块链技术作为其核心支撑,正迎来前所未有的应用爆发。Web3不仅仅是技术的革新,更代表了一种去中心化、开放、透明的互联网愿景。在这一背景下,区块链技术的应用正从理论走向实践,推动着各行各业的数字…

学习大数据DAY61 宽表加工

目录 模型设计 加工宽表 任务调度: 大表 - 把很多数据整合起来 方便后续的明细查询和指标计算 模型设计 设计 建模 设计: excel 文档去编写 建模: 使用建模工具 PowerDesigner Navicat 在线画图工具... 把表结构给绘 制出来 共享\项目课工具\pd 加工宽表 数…

ChromeDriver驱动下载地址更新(保持最新最全)

说明: ChromeDriver 是 Selenium WebDriver 用于控制 Chrome 的独立可执行文件。 为了方便下载使用,本文保持ChromeDriver的最新版本更新,并提供115.0.5763.0-133.0.6841.0版本的下载地址: 所有版本和下载地址: &am…

QT基本绘图

QT绘图 1.概述 这篇文章介绍如何绘图 2.绘图基本操作 创建一个普通的widget类型的项目 在widget.h 文件中重写绘图事件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : p…

[ACTF2020]Upload 1--详细解析

信息收集 题目告诉我们是一道upload&#xff0c;也就是文件上传漏洞题目。 进入界面&#xff0c;是一个灯泡&#xff0c;将鼠标放在图标上就会出现文件上传的相应位置&#xff1a; 思路 文件上传漏洞&#xff0c;先看看有没有前端校验。 在js源码中找到了前端校验&#xff…

Android Studio开发学习(五)———LinearLayout(线性布局)

一、布局 认识了解一下Android中的布局&#xff0c;分别是: LinearLayout(线性布局)&#xff0c;RelativeLayout(相对布局)&#xff0c;TableLayout(表格布局)&#xff0c; FrameLayout(帧布局)&#xff0c;AbsoluteLayout(绝对布局)&#xff0c;GridLayout(网格布局) 等。 二、…

计算机视觉在自动驾驶汽车中的应用

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 计算机视觉在自动驾驶汽车中的应用 计算机视觉在自动驾驶汽车中的应用 计算机视觉在自动驾驶汽车中的应用 引言 计算机视觉在自动…

表格的选择弹窗,选中后返显到表格中

项目场景&#xff1a; 提示&#xff1a;这里简述项目相关背景&#xff1a; 表格的下拉框可以直接显示选项&#xff0c;那如果选择框不是下拉的&#xff0c;而是弹窗&#xff0c;那么在表格中如何返显呢&#xff1f; 问题描述 如上图所示&#xff0c;点击表格中的选择&#xf…

金融领域先锋!海云安成功入选2024年人工智能先锋案例集

近日&#xff0c;中国人工智能产业发展联盟《2024年人工智能先锋案例集》&#xff08;以下简称“AIIA先锋案例集”&#xff09;在中国人工智能产业发展联盟第十三次全体会议上正式发布。该案例集由人工智能产业发展联盟&#xff08;AIIA&#xff09;、工业和信息化部新闻宣传中…

HarmonyOs鸿蒙开发实战(16)=>沉浸式效果第一种方案一窗口全屏布局方案

1.沉浸式效果的目的 开发应用沉浸式效果主要指通过调整状态栏、应用界面和导航条的显示效果来减少状态栏导航条等系统界面的突兀感&#xff0c;从而使用户获得最佳的UI体验。 2.窗口全屏布局方案介绍 调整布局系统为全屏布局&#xff0c;界面元素延伸到状态栏和导航条区域实现沉…

OpenAI震撼发布:桌面版ChatGPT,Windows macOS双平台AI编程体验!

【雪球导读】 「OpenAI推出ChatGPT桌面端」 OpenAI重磅推出ChatGPT桌面端&#xff0c;全面支持Windows和macOS系统&#xff01;这款新工具为用户在日常生活和工作中提供了前所未有的无缝交互体验。对于那些依赖桌面端进行开发工作的专业人士来说&#xff0c;这一更新带来了令人…

Android OpenGLES2.0开发(八):Camera预览

严以律己&#xff0c;宽以待人 引言 终于到该章节了&#xff0c;还记得Android OpenGLES2.0开发&#xff08;一&#xff09;&#xff1a;艰难的开始章节说的吗&#xff1f;写这个系列的初衷就是因为每次用到GLSurfaceViewCamera预览时&#xff0c;总是CtrlC、CtrlV从来没有研究…

独立站干货:WordPress主机推荐

WordPress作为全球最受欢迎的独立站建设平台&#xff0c;提供了灵活性和强大的功能&#xff0c;使得建站变得简单而高效。本文将为您详细介绍WordPress建站的流程&#xff0c;并推荐几款实测后觉得好用的主机商。 WordPress建站流程 域名注册 首先需要注册一个域名&#xff0c…

细说STM32单片机DMA中断收发RTC实时时间并改善其鲁棒性的方法

目录 一、DMA基础知识 1、DMA简介 (1)DMA控制器 (2)DMA流 (3)DMA请求 (4)仲裁器 (5)DMA传输属性 2、源地址和目标地址 3、DMA传输模式 4、传输数据量的大小 5、数据宽度 6、地址指针递增 7、DMA工作模式 8、DMA流的优先级别 9、FIFO或直接模式 10、单次传输或突…