opencv
文章平均质量分 91
opencv基础
吴声子夜歌
个人学习记录
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
OpenCV——霍夫变换
180°)时的p值,如果累加器中有这个值,则给这个值投一票,对所有像素投完票后,找到累加器中的最大值对应的p和0,这两个参数对应的直线就是检测结果。可以看出,最多直线形成的交点是 M点和N点,相交直线有3条,其余交点都只有2条直线相交,因此,最后检测到的直线就是 M点和N点在笛卡儿坐标中对应的直线,即 ACE和 BCD,如图©所示。程序中有一个变量len 是指画线的长度,因为标准霍夫变换中输出的是直线的p和0,而根据这两个参数得到的是直线(没有起始点和终止点)而不是线段,所以需要指定线的长度。原创 2025-06-23 22:30:26 · 1305 阅读 · 0 评论 -
OpenCV——轮廓检测
某些轮廓是没有子轮廓、父轮廓或同一层次的下一个轮廓的,这时用-1 表示。例如,2号轮廓可以表示为[3,-1,-1,1],因为它只有 Next (3 号轮廓,用3表示)和 Parent(1号轮廓,用1表示),没有 Previous 和 First Child(用-1 表示)。如图所示,这个嵌套的图形中有6个轮廓,分别标记为 1~6号,它们之间有层级关系,其中1号轮廓在最外面,它的层级比其他的轮廓都要高。1号轮有3个子轮,分别为 2、3 和 5号轮廓,其中3号轮廓又有4号子轮廓,5 号轮廓又有6号子轮廓。原创 2025-06-23 02:14:23 · 1412 阅读 · 0 评论 -
OpenCV——边缘检测
Sobel算子和Scharr算子进行边缘检测的效率较高,但是它们具有方向性,需要先分别在x方向和y方向求导,然后根据两个结果经计算后才可以得到图像的边缘。双阌值法设置 minVal 和 maxVal 两个阈值,当候选的边缘点的梯度幅值高于 maxVal 时被认为是真正的边界,当低于 minVal 时则被抛弃:如果介于两者之间,则要看这个点是否与某个被确定为真正的边界的像素相连,如果是,则认定为边界点,否则该点被抛弃。当然,为了得到较好的边缘,Canny算法耗费的时间也比较长。原创 2025-06-21 01:04:26 · 1521 阅读 · 0 评论 -
OpenCV——直方图与匹配
图像直方图(Histogram)是一种频率分布图,它描述了不同强度值在图像中出现的频率。图像直方图可以统计任何图像特征,如灰度、饱和度、梯度等。彩色图像的亮度直方图就是其灰度图的直方图。亮度直方图考虑了所有颜色通道,但有时也需要对单种颜色通道进行观察分析。计算单种颜色通道直方图时,每种颜色通道都作为一个独立的灰度图像,分别计算其直方图。各种颜色通道的直方图有时近似的,有时则相差甚远,特别是当图像偏于某一色系时。原创 2025-06-19 23:39:11 · 1506 阅读 · 0 评论 -
OpenCV——图像形态学
进行膨胀操作时用结构元素扫描原图像,用结构元素与覆盖区域的像素进行与运算,如果所有像素的运算结构都是0,则该像素值为0,否则为1。可以发现,原图像中高亮区域有15像素,经过腐蚀操作后只有3像素了,所以的结构相当于给高亮区域瘦身,瘦身的效果取决于结构元素,而结构元素可以根据需求自行定义。腐蚀运算的原理如下图,原图像标有1的像素为高亮区域,结构元素中心的像素为锚点。腐蚀操作时用结构元素扫描原图像,用结构元素与覆盖区域的像素进行与运算,如果所有像素的运算结果都是1,则该像素值为1,否则为0。原创 2025-06-18 00:06:21 · 884 阅读 · 0 评论 -
OpenCV——图像平滑
图像在采集和传输过程中容易受到各种因素的影响而产生噪声,而噪声会对图像的正确解读和处理产生干扰,因此去除图像中的噪声十分重要。去除图像中噪声的过程为图像平滑,或图像去噪、图像模糊。噪声信号主要集中在高频段,图像平滑从信号处理的角度看就是去除高频信号,保留低频信号,因而属于低通滤波。与低通滤波相对应的是高通滤波,边缘检测、锐化等操作就属于高通滤波。图像滤波是指在尽可能保留图像细节特征的前提下去除噪声或者提取需要的信息。图像滤波又可分为线性滤波和非线性滤波。原创 2025-06-14 00:08:56 · 2353 阅读 · 0 评论 -
OpenCV——图像的几何变化
透视变换是利用投影成像的原理将物体重新投射到另一个成像平面,透视变换的转换矩阵也与仿射变换的矩阵不同,是一个3*3的矩阵。在OpenCV中实现透视变换也分两步,第一步通过getPerspectiveTransform()函数来计算透视变化矩阵(3*3),第二步通过warpPerspective()函数实现透视变换。在OpenCV中实现仿射变换需要两步,第一步通过getAffineTransform()函数来计算仿射变换矩阵(矩阵大小为2*3),第二步通过warpAffine()函数实现仿射变换。原创 2025-06-13 00:24:32 · 1366 阅读 · 0 评论 -
OpenCV——图像金字塔
有些情况下需要处理源自同一张图像的不同分辨率的图像集合。例如,在人脸检测时机器并不知道人脸的尺寸是多少,这时就需要建立不同分辨率的图像集合供机器在不同尺寸进行检测。这些不同分辨率的图像组成的集合称为图像金字塔。图像金字塔的底部是高分辨率图像,而顶部是低分辨率图像。...常见的图像金字塔有高斯金字塔(GaussianPyramid)和拉普拉斯金字塔(Laplacian Pyramid)两种。高斯金字塔是指通过向下采样不断将图像尺寸缩小而构建起的多尺寸的图像集合。原创 2025-06-12 16:10:46 · 1470 阅读 · 0 评论 -
OpenCV——图像基本操作(三)
有时原图非常大,而我们只对图像的一个区域感兴趣,此时可以通过子矩阵来处理。子矩阵是指矩阵的一个子区域,可以像矩阵一样进行处理,但是对子矩阵的任何修改都会同时影响原来的矩阵。掩膜是指用选定的图像、图形或物体对需要处理的图像进行遮挡来控制处理区域或处理过程。OpenCV中有不少函数支持掩膜操作,这些函数都有mask这个参数。原创 2025-06-12 14:26:47 · 798 阅读 · 0 评论 -
OpenCV——图像基本操作(二)
简单相加:输入图像的3个通道都是8位无符号整数,范围都是0~255,而白色像素值的RGB为[255,255,255],即输入图像中除了中间的条纹外其余区域的3个像素值都是255。相加后的像素值如果超过上限,则取上限值。第一张图像的相交区域是红色,像素的RGB值是[255,0,0],第二张图像的相交区域是蓝色,RGB值为[0,0,255],相加之后的值就是[255,0,255],即紫色。由于白色的像素值每位都是1,而1无论与0还是1进行或运算后都是1,因此图像的按位或运算也可以产生类似窗口的效果。原创 2025-06-12 00:17:55 · 1329 阅读 · 0 评论 -
OpenCV——图像基本操作(一)
由于HSV颜色空间更接近人类视觉的直观感觉,因此可以在转换成HSV颜色空间后根据色彩对图像进行分割。如下图所示,图中是一副色盲测试图,如果转换成灰度图后只能看到一些灰色的圆点,则无法将中央绿色的。根据不同的应用场景,有时需要将彩色图像的3种颜色通道拆开后分别进行操作,另一些时候则需要把独立通道的图片合而为一,此时就会用到OpenCV中的split()和merge()函数。在调用imshow()函数后,需要通过waitKey()函数告知系统图像在屏幕上停留的时间,如果不用这个函数,则屏幕上不会显示图像。原创 2025-06-09 23:37:47 · 1215 阅读 · 0 评论 -
OpenCV——Mat类及常用数据结构
Mat是矩阵类(Matrix)的缩写,Mat由矩阵头(Header)和数据两部分组成。原创 2025-06-04 00:46:46 · 1550 阅读 · 0 评论 -
OpenCV——Mac系统搭建OpenCV的Java环境
OpenCV 官方提供了预编译的 Java 绑定,可以通过 Maven 直接引入。如果输出了下列信息,则表示成功!原创 2025-06-02 23:25:37 · 893 阅读 · 0 评论
分享