自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 opencv学习(1)-- 角点检测

自定义角点检测是基于Harris和Shi-Tomasi角点检测,首先通过计算矩阵M得到两个特征值而获取角点响应值。然后自己设置阈值实现计算出阈值得到有效响应值的角点位置。通过进行亚像素级别的角点检测可以提高角点的检测精准度,因为角点的位置不会是一个准确的像素点。可以通过插值算法、基于图像矩计算、曲线拟合(高斯曲面、多项式、椭圆曲面)

2023-09-11 12:08:17 2617

原创 opencv入门(18)-- 基于距离变换的分水岭分割

图像分割(Image Segmentation)是对图像中指定对象进行定位轮廓分割。图像分割的目的是将图像中像素根据一定规则分为若干个簇(cluster)集合,每个集合包办一类像素。根据算法可分为监督学习和无监督学习。距离变换:可以参考点与多边形的关系,可以算出每个像素点到多边形轮廓的距离得到距离图像。距离变换常见的算法有:不断膨胀/腐蚀得到和基于倒角距离两种。定义是计算一个图像中非零像素点到最近的零像素点的距离,也就是到零像素点的最短距离。

2023-09-06 16:35:12 405

原创 opencv入门(17)--图像矩

空间矩:double m00,m10,m01,m20,m11,m02,m30,m21,m12,m03中心矩:double mu20,mu11,mu02,mu30,mu21,mu12,mu03中心归一化矩:double nu20,nu11,nu02,nu30,nu21,nu12,nu03空间矩的计算:;i,j为阶数中心矩的计算:;任何阶的中心矩都有平移不变性。参数含义作用计算图像中的矩(最高到三阶)输入array。

2023-09-04 22:31:29 322

原创 opencv入门(16)--绘制轮廓包围框

在寻找到目标轮廓后,很多轮廓基本是不规则的,为了便于目标定位可以用规则的形状将轮廓框选起来。如矩形、椭圆等。

2023-09-04 16:58:22 295

原创 opencv入门(16)--轮廓发现和凸包

在findContours中,不同的mode+method会有不同的效果1)检测最外层轮廓,并且保存轮廓上所有点mode取值“RETR_EXTERNAL”,method取值“CHAIN_APPROX_NONE”,即只检测最外层轮廓,并且保存轮廓上所有点;如下图只检测了最外层的轮廓,内层的轮廓被忽略。轮廓:点集:将轮廓上的所有点均保存下来2)检测所有轮廓,但各轮廓之间彼此独立,不建立等级关系,并且仅保存轮廓上拐点信息。

2023-09-02 22:42:54 258

原创 opencv入门(15)-- 模板匹配

模板匹配就是在给定的图像中,通过计算模板与图片对应区域的匹配度,查找与模板最相似的区域。模板匹配的核心其实就是将模板与源图像的每个区域进行比较,逐像素滑动。从本质上讲,是将模板在源图像上进行卷积,创建新的图像或矩阵,其中每个像素值表示模板与源图像中相应区域之间的相似性。分析结果图像,可以通过峰值找到与模板匹配的紧缺位置。

2023-09-02 16:59:59 166

原创 opencv入门(14)--直方图

反向投影是反映直方图模型在目标图像中的分布情况,简单点说计算某一特征的直方图模型,然后使用模型去寻找图像中存在的该特征的方法。通常用HSV色彩空间的HS两个通道直方图模型。

2023-09-01 19:11:39 214

原创 opencv入门(13)--像素重映射

像素重映射实际上就是将原图中的每一个像素按照一定的规则映射到另一张图像的对应位置上。是对应的下标间的转换,灰度值不变。(如镜像,旋转等操作)INTER_LANCZOS4 -Lanczos插值(逾8×8像素邻域的Lanczos插值)INTER_CUBIC – 双三次样条插值(逾4×4像素邻域内的双三次插值)INTER_LINEAR – 双线性插值(默认值)13.2 相关API cv::remap。INTER_NEAREST - 最近邻插值。

2023-08-27 15:37:57 50

原创 opencv入门(12)--霍夫变换

霍夫变换是数字图像处理中的一种常用技术,可以用来检测图像中的直线、圆或其他形状。

2023-08-27 14:54:48 143

原创 opencv(11)--边缘检测算子

当图像的某个区域有灰阶变化,对变化率求导,得到变化率最快的位置。边缘是像素值发生跃迁的地方,在图像特征提取、对象检测、模式识别等方面都有重要的作用。通过对图像求一阶导数可以捕捉边缘(delta=f(x)-f(x-1)越大,说明像素在x方向变化越大)。

2023-08-27 01:30:38 232

原创 opencv入门(10)--阈值与线性滤波及卷积边缘处理

卷积是卷积核(kernel)在图像中的每个像素的操作;kernel本质上是一个固定大小的矩阵数组,通常将其中心称为锚点(anchor point)。计算与卷积核重叠区域一一对应的乘积和重新赋值到与锚点重叠的像素。Sum = 8x1+6x1+6x1+2x1+8x1+6x1+2x1+2x1+8x1 各乘积相加New pixel = sum / (m*n) 取平均值卷积的作用:模糊图像,提取边缘,图像增锐化等;return -1;else;Mat dst;/// 初始化滤波器参数。

2023-08-25 23:14:30 244

原创 opencv入门(9)--图像上采样和降采样

数字图像处理中经常会对图像的大小进行调整,常见的就是放大(zoom in)和缩小(zoom out),通过几何变换(如双线性差值等)。一个图像金字塔是一系列图像的几何,从下到上,图像尺寸变小。如下图所示,通过上采样或降采样可以得到不同层不同分辨率的图像,在不同的尺度空间寻找图像对应的特征(),图像的采样点越多,像素越多,分辨率越高。可以用在图像融合、重建、特征提取等方面中。

2023-08-25 18:49:59 1019

原创 opencv入门(8)--水平/垂直线提取

自适应阈值API cv::adaptiveThreshold,用于图像二值化,对于对比大的图像有较好效果,相对于opencv中固定阈值化操作(threshold()),自适应阈值中图像中每一个像素点的阈值是不同的,该阈值由其领域中图像像素带点加权平均决定。ADAPTIVE_THRESH_GAUSSIAN_C :计算出领域的高斯均值再减去第七个参数double C的值。膨胀:输出的像素值是结构元素覆盖下输入图像的最大像素值;腐蚀:输出的像素值是结构元素覆盖下输入图像的最小像素值;8.2.2 代码示例。

2023-08-25 15:53:05 219

原创 ZEMAX学习笔记-预备知识(孔径光阑、入瞳和出瞳)

可以看出入射光瞳通过整个光学系统所成的像就是出射光瞳,二者对整个光学系统是共辄的。如果光阑在整个系统的像壁间,那么它本身也是出射光瞳。当L1和L2透镜一样且距离孔阑的距离一致,则其入射光瞳和出射光瞳的大小和倒正完全一样。光学系统中,限制轴上点发出光束的孔径角的元件,称孔径光阑(孔阑),它决定了物体上各点有多大的光束可以进去光学系统。当孔径光阑前方无光学系统,则孔径光阑就是入瞳。孔阑通过其前面的透镜成像到物空间,这个像称为入射光瞳,简称入瞳。孔阑通过其后面的透镜成像到像空间,这个像称为出射光瞳,简称出瞳。

2023-08-24 22:45:03 2447

原创 opencv入门(7)--形态学处理

图像的形态学处理通常作用于图像预处理、图像增强、目标分割等场景。数字图像的形态学利用点集的性质、拓扑学理论等对物体像素进行变换。形态学变化只能再二值图像上处理。形态学处理可分为:腐蚀、膨胀、开运算、闭运算、形态学梯度运算、顶帽运算、黑帽运算等。

2023-08-24 21:46:15 530

原创 opencv入门(6) -- 图像模糊

图像模糊从字面理解就是将清晰的图像变模糊。在图像处理中,模糊可以理解为对每个像素进行滤波或平滑出来,减少其细节,使得图像的噪声削弱,从而提升其整体质量,本质是进行图像的降噪处理。图像模糊主要用以凸显特征明显的区域,通过模糊处理可以进行特征点的提取或做运动模糊的功能。常通过卷积实现,常用的模糊处理有:均值滤波、高斯滤波、中值滤波、双边滤波等。

2023-08-24 17:20:39 1278

原创 opencv入门(5)-图文绘制

为了提高图像处理过程中额可读性和交互性,opencv提供了绘制几何形状、文本、线的功能。广泛地应用于目标检测、图像分割、实时显示等场景中。

2023-08-23 20:43:10 72

原创 opencv入门(4)-图像操作、混合、调整

通过imread可以指定加载为灰度或RGB图像。通过imwrite可以保存为指定类型的图像文件。

2023-08-23 16:14:30 90

原创 opencv入门(3)

Mat对象是一种矩阵形式的数据结构,可以自动分配内存、不存在内存泄漏 的问题,是面向对象的数据结构。可分为矩阵头(包含矩阵的大小,存储方法和存储地址等)和一个指针,指向包含像素值的矩阵地址。矩阵头的存储空间是常数,矩阵本身的尺寸随着图像大小改变。

2023-08-22 22:09:42 24

原创 opencv入门(2)

掩膜操作是指根据掩膜矩阵(mask,也称为内核kernel)重新计算图像中每个像素的值。利用掩膜矩阵调整相邻像素对当前像素值的影响。从数学的角度来看,即是利用特定的权重值,对像素做一个加权平均。假设有一个3*3的卷积核,矩阵参数如下图所示用该核去遍历每个像素,及当前像素的值为5倍当前像素的值减去该像素上、下、左、右四个像素值和。如下图计算。该掩膜操作可用以调整图像的对比度。为了进行掩膜操作,可以数组遍历或对图像数据进行像素指针的获取。

2023-08-22 17:00:30 73

原创 opencv入门(1)

filenameflags指定读出图片的方式:IMREAD_COLOR(1): 加载彩色图像,但忽视透明度。默认。IMREAD_GRAYSCALE(0):以灰度模式加载图像。IMREAD_UNCHANGED(-1):加载原图不做改变。

2023-08-21 18:38:34 35

原创 ZEMAX的初步认识和了解

存档就是将设计使用的所有文件的完整复制保存到 .ZAR 文件中,不含原文件夹的信息,仅保存文件的类型、名称和数据。当从 ZAR 文件恢复 设计时,将创建 AGF 文件,并将此文件放到当前的玻璃库文件夹中。大多数成像系统可以很好地用序列性的光学面描述,就是光线严格按照序列从物面依次到第1面、第2面、第3面等等。光线可能入射到任何非序列物体的任何部分,并且可能多次入射到同一物体上,但也可能一次也不入射。文件比较:用于比较两个相似的镜头文件,并排列出它们的数据参数。将之前保存的透镜文件插入到当前的透镜文件中。

2023-08-20 23:34:22 2065

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除