
opencv
文章平均质量分 53
暮棂
学术小渣渣
展开
-
12.3 Hu矩函数
Hu 矩是归一化中心矩的线性组合。Hu 矩在图像旋转、缩放、平移等操作后,仍能保持矩 的不变性,所以经常会使用 Hu 距来识别图像的特征。原创 2025-03-10 19:24:16 · 404 阅读 · 0 评论 -
12.2 矩特征
比较两个轮廓最简单的方法是比较二者的轮廓矩。轮廓矩代表了一个轮廓、一幅图像、一 组点集的全局特征。矩信息包含了对应对象不同类型的几何特征,例如大小、位置、角度、形 状等。矩特征被广泛地应用在模式识别、图像识别等方面。原创 2025-03-10 19:22:15 · 260 阅读 · 0 评论 -
1. 图像处理基本操作
运行上述程序,会分别出现名称为 demo1 和 demo2 的窗口,在两个窗口中显示的都是 lena.bmp 图像。运行上述程序,首先会在一个名为 demo 的窗口内显示 lena.bmp 图像。在程序运行的过程 中,当未按下键盘上的按键时,程序没有新的状态出现;式中,winname 是要创建的窗口的名称。例如,下列语句会创建一个名为 lesson 的窗口: cv2.namedWindow(“lesson”)函数 cv2.waitKey()用来等待按键,当用户按下键盘后,该语句会被执行,并获取返回值。原创 2024-12-21 19:29:20 · 418 阅读 · 0 评论 -
2.图像像素处理
RGB 模式的彩色图像在读入 OpenCV 内进行处理时,会按照行方向依次读取该 RGB 图像 的 B 通道、G 通道、R 通道的像素点,并将像素点以行为单位存储在 ndarray 的列中。使用了一个嵌套循环语句,将图像 img 中“第 10 行到 99 行”与“第 80 列到 99 列”交叉区域内的像素值设置为 255。从图像 img 上来看,该交叉区域被设置为白色。假设有一个红色(其 R 通道值为 255,G 通道值为 0,B 通道值为 0) 图像,不同的访问方式得到的值如下。原创 2024-12-21 19:24:37 · 286 阅读 · 0 评论 -
2.3 使用numpy.array访问像素
提供了item()和itemset()函数来访问和修改像素值,而且这两个函数都是经过 优化处理的,能够更大幅度地提高处理效率。在访问及修改像素点的值时,利用提供的函数比直接使用索引要快得多,同时,这两个函数的可读性也更好。原创 2024-12-21 19:39:51 · 205 阅读 · 0 评论 -
2.4 感兴趣区域(ROI)
在图像处理过程中,我们可能会对图像的某一个特定区域感兴趣,该区域被称为感兴趣区 域(Region of Interest,ROI)。在设定感兴趣区域 ROI 后,就可以对该区域进行整体操作。例 如,将一个感兴趣区域 A 赋值给变量 B 后,可以将该变量 B 赋值给另外一个区域 C,从而达 到在区域 C 内复制区域 A 的目的。原创 2024-12-21 19:41:56 · 205 阅读 · 0 评论 -
2.5 通道操作
通道合并是通道拆分的逆过程,通过合并通道可以将三个通道的灰度图像构成一幅彩色图 像。函数 cv2.merge()可以实现图像通道的合并,例如有 B 通道图像 b、G 通道图像 g 和 R 通道 图像 r,使用函数 cv2.merge()可以将这三个通道合并为一幅 BGR 的三通道彩色图像。例如,针对 OpenCV 内的 BGR 图像 img,如下语句分别从中提取了 B 通道、G 通道、R 通道。例如,可以使用如下语句拆分彩色 BGR 图像 img, 得到B通道图像b、G通道图像g和R通道图像r。原创 2024-12-22 09:30:17 · 438 阅读 · 0 评论 -
2.6获取图像属性
在图像处理过程中,经常需要获取图像的属性,例如图像的大小、类型等。这里介绍几个 常用的属性。原创 2024-12-22 09:31:45 · 157 阅读 · 0 评论 -
3.1图像加法运算
在图像处理过程中,经常需要对图像进行加法运算。可以通过加号运算符“+”对图像进 行加法运算,也可以通过 cv2.add()函数对图像进行加法运算。-通常情况下,在灰度图像中,像素用 8 个比特位(一个字节)来表示,像素值的范围是[0,255]。两个像素值在进行加法运算时,求得的和很可能超过 255。上述两种不同的加法运算方式,对 超过 255 的数值的处理方式是不一样的。原创 2024-12-22 09:34:12 · 397 阅读 · 0 评论 -
3.2 图像加权和
alpha+src2系数1+图像2。原创 2024-12-23 19:52:41 · 335 阅读 · 0 评论 -
3.3按位逻辑运算
alpha+src2系数1+图像2。原创 2024-12-23 19:53:59 · 221 阅读 · 0 评论 -
3.4 掩体
当使用掩模参数时,操作只会在掩模值为非空的像素点上执行,并将其他像素点的值置为 0。原创 2024-12-23 19:55:38 · 148 阅读 · 0 评论 -
3.5 图像与数值的运算
参与运算的两个算子(参数)既可以是两幅图像,也可以 是一幅图像与一个数值。例如,如果想增加图像的整体亮度,可以将每一个像素值都加上一个特定值。在具体实现 时,可以给图像加上一个统一像素值的图像,也可以给图像加上一个固定值。原创 2024-12-24 14:59:58 · 222 阅读 · 0 评论 -
3.6位平面分解
将灰度图像中处于同一比特位上的二进制像素值进行组合,得到一幅二进制值图像,该图 像被称为灰度图像的一个位平面,这个过程被称为位平面分解。原创 2024-12-24 15:00:42 · 178 阅读 · 0 评论 -
4.3 类型转换实例
在 HSV 色彩空间中,H 通道(饱和度 Hue 通道)对应不同的颜色。例如,在一幅 HSV 图像中,如果通过控制仅仅将 H 通道内值为 240(在 OpenCV内被调整为 120)的像素显示出来,那么图像中就会仅仅显示蓝色部分。在标记特定颜色的基础上,可以将标注范围进一步推广到特定的对象上。例如,通过分析 可以估算出肤色在 HSV 色彩空间内的范围值。在 HSV 空间内筛选出肤色范围内的值,即可将 图像内包含肤色的部分提取出来。接下来,通过对其中的通道分量赋值,将其设定为指定的颜色。原创 2024-12-24 15:02:37 · 1115 阅读 · 0 评论 -
4.5 alpha通道
在 RGB 色彩空间三个通道的基础上,还可以加上一个 A 通道,也叫 alpha 通道,表示透 明度。这种 4 个通道的色彩空间被称为 RGBA 色彩空间,PNG 图像是一种典型的 4 通道图像。alpha 通道的赋值范围是[0, 1],或者[0, 255],表示从透明到不透明。原创 2024-12-25 15:17:35 · 366 阅读 · 0 评论 -
5.1 缩放
【代码】5.1 缩放。原创 2024-12-25 15:18:54 · 148 阅读 · 0 评论 -
5.2 翻转
【代码】5.2 翻转。原创 2024-12-25 15:19:45 · 218 阅读 · 0 评论 -
5.3 仿射
目的:实现平移、旋转等多种操作。仿射函数 cv2.warpAffine()实现对图像的旋转,该函数的语法格式如下:式中:2. 旋转在使用函数对图像进行旋转时,可以通过函数 获取转换矩阵。该函数的语法格式为:式中:3. 更复杂的仿射变换对于更复杂仿射变换,OpenCV 提供了 函数来生成仿射函数 所使用的转换矩阵 M。该函数的 语法格式为:式中:原创 2024-12-25 15:22:11 · 770 阅读 · 0 评论 -
5.4 透视
仿射变换可以将矩形映射为任意平行四边形,透视变换则可以将矩形映射为 任意四边形。与仿射变换一样,同样可以使用一个函数来生成函数 cv2.warpPerspective()所使用的转换矩 阵。原创 2024-12-31 08:54:29 · 301 阅读 · 0 评论 -
6.1 threshold函数
反二值化阈值处理的结果也是仅有两个值的二值图像,与二值化阈值处理的区别在于,二 者对像素值的处理方式不同。超阈值零处理会将图像中大于阈值的像素点的值处理为 0,小于或等于该阈值的像素点的 值保持不变。低阈值零处理会将图像中小于或等于阈值的像素点的值处理为 0,大于阈值的像素点的值保持不变。二值化阈值处理会将原始图像处理为仅有两个值的二值图像,其示意图如图 6-3 所示。截断阈值化处理会将图像中大于阈值的像素点的值设定为阈值,小于或等于该阈值的像素点的值保持不变。原创 2024-12-31 08:59:50 · 1500 阅读 · 0 评论 -
6.2 自适应阈值处理
函数根据参数 adaptiveMethod 来确定自适应阈值的计算方法,函数 包含和两种不 同的方法。这两种方法都是逐个像素地计算自适应阈值,自适应阈值等于每个像素由参数 blockSize 所指定邻域的加权平均值减去常量 C。原创 2025-01-02 09:06:32 · 481 阅读 · 0 评论 -
6.3 Otsu处理
Otsu 方法能够根据当前图像给出最佳的类间分割阈值。简而言之,Otsu 方法会遍历所有可 能阈值,从而找到最佳的阈值。在 OpenCV 中,通过在函数中对参数 type 的类型多传递一个参数“cv2.THRESH_OTSU”,即可实现 Otsu 方式的阈值分割。需要说明的是,在使用 Otsu 方法时,要把阈值设为 0。此时的函数会自动 寻找最优阈值,并将该阈值返回。原创 2025-01-02 09:08:21 · 479 阅读 · 0 评论 -
7.1 均值滤波
当前像素点周围 N·N 个像素值的均值来代替当前像素值】原创 2025-01-03 08:44:42 · 223 阅读 · 0 评论 -
7.2 方框滤波
与均值滤波的不同在于,方框滤波不会计算像素均值。在均值滤波中,滤波结果的像素值是任意一个点的邻域平均值,等于各邻域像素值之和除以邻域面积。而在方框滤波中,可以自由选择是否对均值滤波的结果进行归一化,即可以自由选择滤波结果是邻域像素值之和的平均值,还是邻域像素值之和。原创 2025-01-03 08:45:58 · 526 阅读 · 0 评论 -
7.3 高斯滤波
将中心点的权重值加大,远离中心点的权重值减小。原创 2025-01-03 08:47:11 · 457 阅读 · 0 评论 -
7.4 中值滤波
用邻域内所有像素值的中间值来替代当前像素点的像素值。原创 2025-01-09 13:25:40 · 159 阅读 · 0 评论 -
7.5 双边滤波
为了简单起见,可以将两个 sigma(sigmaColor 和 sigmaSpace)值设置为相同的。如果它 们的值比较小(例如小于 10),滤波的效果将不太明显;如果它们的值较大(例如大于 150), 则滤波效果会比较明显,会产生卡通效果。从图中可以看出,双边滤波去除噪声的效果并不好。双边滤波的优势体现在对于边缘信息的处理上,下面通过一个例题来展示不同形式的滤波在边缘处理效果上的差异。中,参数 borderType 是可选参数,其余参数全部为必选参数。原创 2025-01-09 13:26:44 · 378 阅读 · 0 评论 -
7.6 2D卷积
dst 是返回值,表示进行方框滤波后得到的处理结果。src 是需要处理的图像,即原始图像。它能够有任意数量的通道,并能对各个通道独立处理。图像深度应该是 CV_8U、CV_16U、CV_16S、CV_32F 或者 CV_64F 中的一种。ddepth 是处理结果图像的图像深度,一般使用-1 表示与原始图像使用相同的图像深度。kernel 是卷积核,是一个单通道的数组。如果想在处理彩色图像时,让每个通道使用不同的核,则必须将彩色图像分解后使用不同的核完成操作。原创 2025-01-09 13:27:35 · 273 阅读 · 0 评论 -
8.1 腐蚀
【代码】8.1 腐蚀。原创 2025-01-10 13:40:42 · 369 阅读 · 0 评论 -
8.2 膨胀
【代码】8.2 膨胀。原创 2025-01-10 13:42:26 · 243 阅读 · 0 评论 -
8.3 通用形态学函数
腐蚀操作和膨胀操作是形态学运算的基础,将腐蚀和膨胀操作进行组合,就可以实现开运 算、闭运算(关运算)、形态学梯度(Morphological Gradient)运算、礼帽运算(顶帽运算)、 黑帽运算、击中击不中等多种不同形式的运算。原创 2025-01-13 14:00:22 · 412 阅读 · 0 评论 -
8.4 核函数
函数 cv2.getStructuringElement()能够构造并返回一 个用于形态学处理所使用的结构元素。该函数用来返回一个用于形态学操作的指定大小和形状的结构元素。函数中的参数含义如下。原创 2025-01-13 14:01:54 · 422 阅读 · 0 评论 -
9.1 算子及函数使用
Sobel 算子、Scharr 算子、Laplacian 算子都可以用作边缘检测。原创 2025-01-14 09:15:46 · 771 阅读 · 0 评论 -
9.2 Scharr算子及函数使用
在函数 cv2.Sobel()中介绍过,如果 ksize=-1,则会使用 Scharr 滤波器。和是等价的。函数和函数的使用方式基本一致。首先,需要注意的是,参数 ddepth 的值应该设置为“cv2.CV_64F”,并对函数 cv2.Scharr() 的计算结果取绝对值,才能保证得到正确的处理结果。另外,需要注意的是,在函数 cv2.Scharr()中,要求参数 dx 和 dy 满足条件: dx >= 0 && dy >= 0 && dx+dy == 1。原创 2025-01-14 09:17:54 · 183 阅读 · 0 评论 -
9.3 Sobel算子和Scharr算子的比较
Sobel 算子的缺点是,当其核结构较小时,精确度不高,而 Scharr 算子具有更高的精度。原创 2025-01-17 08:56:09 · 134 阅读 · 0 评论 -
9.4 Laplacian算子及函数使用
【代码】9.4 Laplacian算子及函数使用。原创 2025-01-17 08:57:32 · 311 阅读 · 0 评论 -
10. Canny边缘检测
Canny 边缘检测分为如下几个步骤。步骤 1:去噪。噪声会影响边缘检测的准确性,因此首先要将噪声过滤掉。步骤 2:计算梯度的幅度与方向。步骤 3:非极大值抑制,即适当地让边缘“变瘦”。步骤 4:确定边缘。使用双阈值算法确定最终的边缘信息。下面对上述步骤分别进行简单的介绍。原创 2025-01-24 15:33:27 · 408 阅读 · 0 评论 -
11.1 图像金字塔
【代码】11.1 图像金字塔。原创 2025-01-24 15:34:56 · 408 阅读 · 0 评论 -
11.2 采样可逆性的研究
虽然一幅图像在先后经过向下采样、向上采样后,会恢复为原始大小,但是向上采样和向 下采样不是互逆的。也就是说,虽然在经历两次采样操作后,得到的结果图像与原始图像的大 小一致,肉眼看起来也相似,但是二者的像素值并不是一致的。原创 2025-02-13 10:37:36 · 137 阅读 · 0 评论