图像处理
文章平均质量分 82
八岁爱玩耍
个人博客:https://aishangcengloua.github.io/
展开
-
PyTorch 加载 Mask R-CNN 预训练模型并 fine-tuning
假设我们最终需要的特征图大小为 2 × 2,我们需要将 RoI 的特征图平均等分成 4 份,然后再将每个方格分成 4 小块,取每个小块的中心作为黑点,然后对这 4 个黑点的值选择最大值或者均值,作为这个方格最终的特征,如上图。小黑点周围会有特征图上的 4 个特征点,利用这 4 个特征点双线性插值出该黑点的值。首先假设 RoI 在原图上的大小为 x,原图到特征图缩小了 k 倍,则 RoI 对应到特征图大小就是 x / k,这里不对坐标进行取整,这意味着网格中没有确定的像素可以取,因为新坐标是浮点值。原创 2022-11-09 12:47:47 · 2951 阅读 · 1 评论 -
【Opencv】目标追踪——高斯混合模型分离算法(MOG)
文章目录1 环境2 效果3 原理4 代码1 环境Python 3.8.8PyCharm 2021opencv-python2 效果3 原理 视频图像中的目标检测与跟踪,是计算机视觉的基础课题,同时具有广泛的应用价值。视觉目标(单目标)跟踪任务就是在给定某视频序列初始帧的目标大小与位置的情况下,预测后续帧中该目标的大小与位置。依照目标与摄像头之间的关系可分为两种场景的目标追踪:静态场景:目标检测相对简单,研究渐趋成熟。动态场景:相对复杂,当前研究领域的热点。本文只介绍静态场景的原创 2022-04-11 10:43:43 · 8329 阅读 · 2 评论 -
【Opencv】图像分割——区域生长
文章目录1 环境2 效果3 原理4 案例1 环境Python 3.8.8PyCharm 2021opencv-python2 效果3 原理 区域生长的基本思想是将具有相似性质的像素集合起来构成区域。具体先对每个需要分割的区域找一个种子像素作为生长的起点,然后将种子像素周围邻域中与种子像素具有相同或相似性质的像素(根据某种事先确定的生长或相似准则来判定)合并到种子像素所在的区域中。将这些新像素当做新的种子像素继续进行上面的过程,直到再没有满足条件的像素可被包括进来,这样,一个区域就长成原创 2022-03-29 22:09:20 · 13807 阅读 · 9 评论 -
【Opencv】图像分割——区域分裂合并
文章目录1 环境2 效果3 原理4 代码1 环境Python 3.8.8PyCharm 2021opencv-python2 效果3 原理 区域生长是从某个或者某些像素点出发,最后得到整个区域,进而实现目标提取。分裂合并差不多是区域生长的逆过程:从整个图像出发,不断分裂得到各个子区域,然后再把前景区域合并,实现目标提取。分裂合并的假设是对于一幅图像,前景区域由一些相互连通的像素组成的,因此,如果把一幅图像分裂到像素级,那么就可以判定该像素是否为前景像素。当所有像素点或者子区域完成判断以原创 2022-03-28 21:54:17 · 10796 阅读 · 7 评论 -
【OpenCv】图像分割——聚类算法
文章目录1 原理2 API3 图像分割4 代码解释1 原理KMeans算法概述KMeans算法的作者是MacQueen, KMeans的算法是对数据进行分类的算法,采用的硬分类方式,是属于非监督学习的算法;对于给定的样本集,按照样本之间的距离大小,将样本划分为K个簇,让簇内的点尽量紧密的连接在一起,而让簇间的距离尽量的大。KMeans算法流程1:选择K个点作为初始质心。2:Repeat3: 计算邻近度,将每个点指派到最近的质心,形成K个簇;4: 重新计算每个簇的质心;5: Unti原创 2022-03-25 12:22:43 · 9386 阅读 · 4 评论 -
【OpenCv】图像分割——分水岭算法
文章目录1 原理2 算法改进3 API4 实例1 原理 分水岭分割方法,是一种基于拓扑理论的数学形态学的分割方法,其基本思想是把图像看作是测地学上的拓扑地貌,图像中每一点像素的灰度值表示该点的海拔高度,每一个局部极小值及其影响区域称为集水盆,而集水盆的边界则形成分水岭。分水岭的概念和形成可以通过模拟浸入过程来说明。在每一个局部极小值表面,刺穿一个小孔,然后把整个模型慢慢浸入水中,随着浸入的加深,每一个局部极小值的影响域慢慢向外扩展,在两个集水盆汇合处构筑大坝,即形成分水岭。这种方法也称作泛洪法,对应的原创 2022-03-25 01:25:32 · 8809 阅读 · 1 评论 -
【OpenCv】图像的轮廓查找
1 原理 边界或者轮廓可以简单认为成将连续的点(连着边界)连在一起的曲线,具有相同的颜色或者灰度。轮廓在形状分析和物体的检测和识别中很有用。在机器视觉领域最常用的轮廓查找的算法之一是 Moore-Neighbor 算法,像素的摩尔邻域 PPP 是与该像素共享顶点或边的 888 个像素的集合。这些像素即 如下图所示的像素P1P1P1、P2P2P2、P3P3P3、P4P4P4、P5P5P5、P6P6P6、P7P7P7和P8P8P8。 摩尔邻域(也称为8 邻域或 间接邻域)是文献中经常出现的一个重要概念。原创 2022-03-19 10:38:37 · 7600 阅读 · 2 评论 -
【OpenCv】圆环展平
环境Python 3.8.8PyCharm 2021opencv-python效果原始圆环:展平之后:基本原理首先是对圆环进行圆检测,检测出外圆和内圆的圆心和半径。关于圆检测,可以看我这篇博客https://blog.csdn.net/weixin_53598445/article/details/123495680后以外圆的周长,圆环的宽度也即内圆和外圆的半径之差作为宽创建一个矩形,若无法检测内圆,可以粗略使用外圆半径的二分之一作为宽。从圆环的最外圈开始遍历,最外圈即对应着矩原创 2022-03-15 23:38:37 · 5940 阅读 · 6 评论 -
【OpenCv】检测黑白棋
环境Python 3.8.8Pycharm 2021opencv-Python效果基本原理圆检测的原理是在直线检测原理上的拓展,可以先看看我这篇博客霍夫直线检测下面介绍圆检测的不同之处。圆的表达式如下:(x−a)2+(y−b)2=r(x-a)^2+(y-b)^2=r(x−a)2+(y−b)2=r其中aaa和bbb表示圆心坐标,rrr表示圆半径,因此标准佛如霍夫圆检测就是在这三个参数组成的三维空间累加器上进行圆检测,此时效率就会很低,所以OpenCvOpenCvOpenCv中使用原创 2022-03-15 10:46:46 · 3874 阅读 · 1 评论 -
【OpenCv】霍夫直线检测
文章目录前言1 原理前言 Hough变换是实现边缘检测的一种有效方法,其基本思想是将测量空间的一点变换到参量空间的一条曲线或曲面,而具有同一参量特征的点变换后在参量空间中相交,通过判断交点处的积累程度来完成特 征曲线的检测。1 原理 保罗·哈夫于1962年提出了Hough变换法,并申请了专利。该方法 将图像空间中的检测问题转换到参数空间,通过在参数空间里进行简单的累加统计完成检测任务,并用大多数边界点满足的某种参数形式来描述图像的区域边界曲线。这种方法对于被噪声干扰或间断区域边界的图像具有良好的原创 2022-03-08 09:15:44 · 5606 阅读 · 3 评论 -
【Opencv】基于色差的简单目标提取
所有颜色都是由RRR(红)、GGG(绿)、BBB(蓝) 3个单色调配而成, 每种单色都人为地从0~2550~2550~255分成了256256256个级,所以根据RRR、 GGG、BBB的不同 组合可以表示256×256×256=16777216256×256×256=16777216256×256×256=16777216种颜色,被称为全彩色图像(full-color image)或者真彩色图像(true-color image)。一幅全彩色图像如果不压缩,文件将会很大。例如,一幅640×480640原创 2022-03-07 10:48:41 · 3299 阅读 · 0 评论 -
工业产品缺陷检测Opencv+Python
文章目录问题描述解决方法1 介绍2 方法2.1 产品水平矫正2.2 定位产品的外轮廓2.3 产品对齐2.4 缺陷检测3 实验结果及分析4 讨论问题描述如下图所示为某种用于试剂检验的产品,需要利用机器视觉的方法检测产品的缺陷。 本设计的目的是综合运用图像处理的知识,检测产品是否有严重缺陷。 在检测算法之前, 作为图像的预处理, 检测和定位产品的外轮廓,矫正产品的姿态,对于后续的算法处理有着重要的意义。数据为真实的工业产品成像,分为放在OK,NG目录下。数据提取地址链接 提取码:s3jl,OK目录下的原创 2022-01-06 20:31:01 · 10712 阅读 · 8 评论 -
基于HoG 的图像特征提取及其分类研究
目录1 介绍2 方法2.1 数据集准备2.2 特征提取2.3 降维1 介绍 特征提取是图像处理中的一大领域,著名的提取算法有HoG(Histogram of Oriented Gradient)[1]、LBP(Local Binary Pattern)[2]和Haar-like[3]等等。近些年来,随着GPU算力的急速发展,深度学习也得到了迅速发展,使得图像特征提取的效率大大提升,各种分类任务的正确率不断的刷新提升。而深度学习存在着较差的可解释性和海量数据需求的问题,这是对机器视觉任务来说是伪命题,原创 2021-12-30 15:52:19 · 4579 阅读 · 4 评论 -
【OpenCv】Canny算子边缘检测
Canny算子Marr(LoG)边缘检测方法类似,也属于是先平滑后求导数的方法John Canny研究了最优边缘检测方法所需的特性,给出了评价边缘检测性能优劣的三个指标:1.好的信噪比,即将非边缘点判定为边缘点的概率要低,将边缘点判为非边缘点的概率要低;2.高的定位性能,即检测出的边缘点要尽可能在实际边缘的中心;3.对单一边缘仅有唯一响应,即单个边缘产生多个响应的概率要低,并且虚假响应边缘应该得到最大抑制。步骤:4.减少噪音:由于边缘检测易受图像中的噪声影响,因此第一步是使用5x5高斯滤波器去原创 2021-10-19 22:59:39 · 4319 阅读 · 0 评论 -
【OpenCv】Marr算子边缘检测
Marr算子: Laplacian of a Gaussian(LOG)• Marr算子是在Laplacian算子的基础上实现的,它得益于对人的视觉机理的研究,有一定的生物学和生理学意义。• 由于Laplacian算子对噪声比较敏感,为了减少噪声影响,提出了将高斯滤波和拉普拉斯检测算子结合在一起进行边缘检测的方法:先对图像进行平滑,然后再用Laplacian算子检测边缘。• 平滑函数应能反映不同远近的周围点对给定像素具有不同的平滑作用,因此,平滑函数采用正态分布的高斯函数,即:卷积操作具有原创 2021-10-19 21:47:58 · 2258 阅读 · 0 评论 -
【OpenCv】kirsch算子边缘检测
Kirsch算子是R.Kirsch提出来一种边缘检测算法,它采用8个模板对图像上的每一个像素点进行卷积求导数,这8个模板代表8个方向,对图像上的8个特定边缘方向作出最大响应,运算中取最大值作为图像的边缘输出。Kirsch算子特点• 在计算边缘强度的同时可以得到边缘的方向• 各方向间的夹角为45ºimport cv2 as cvimport matplotlib.pyplot as pltimport numpy as np%matplotlib#kirsch算子#自定义卷积核,八个原创 2021-10-19 21:19:48 · 4314 阅读 · 0 评论