- 博客(24)
- 收藏
- 关注
原创 OpenCV-Python<八> 图像平滑处理
消除图像中的噪音成分,叫做图像的平滑处理或者图像滤波。即在尽量保留图像细节特征的情况下对目标图像的噪声进行抑制。它是图像预处理过程中不可缺少的步骤。处理效果的好坏将直接影响到后续图像处理的有效性和可靠性。滤波目的:1、消除图像中混入的噪声。2、为图像识别抽取出图像特征。滤波要求:1、不能损坏图像轮廓及边缘 。2、图像视觉效果应当更好。实际使用:图像的边缘非常容易收到噪声的干扰,所以为了避免检测到错误的边缘信息,通常需要对图像进行滤波以除去噪声。图像平滑处理会对图像中与
2022-05-08 00:48:48
2352
原创 OpenCV-Python <七> 级联分类器
OpenCV中,提供了三种级联分类器--- Haar级联分类器,Hog特征和LBP算法的级联分类器。为了训练针对特定类型对象的级联分类器, OpenCV提供了专门的工具, build/x86/vc12/bin目录下,有opencv_createsamples.exe, opencv_traincascade.exe。1. 训练过程:2. 使用级联分类器:可以使用opencv中一些训练好的级联分类器。这些分类器可以用来检测人脸,脸部特征(眼睛,鼻子),人体和其它物体。他们放在opencv/
2022-05-05 15:21:29
3716
原创 OpenCV-Python学习<六> 绘图
OpenCV提供了方便的绘图功能,可以绘制直线,矩阵,圆,椭圆等多种几何图形,还能再指定位置添加文字说明。1. 绘制直线:img = v2.line(img, pt1, pt2, color [, thickness [, lineType]])返回值, img: 绘制出的图像。参数:img: 在其上绘制直线的载体图像(绘图的容器载体,也成为画布,画板)pt1,pt2: 线段的起点和终点。类型为tuple.color:绘制直线的颜色。通常使用BGR模型表示。 例如:(0, 0
2022-04-23 19:51:59
4216
原创 OpenCV-Python学习<五> 形态学操作
形态学----数学形态学(MathematicalMorphology), 是图像处理过程中一个非常重要的研究方向。形态学主要从图像内提取分量信息,该分量信息通常对于表达和描述图像的形状具有重要意义。形态学操作主要包含:腐蚀,膨胀,开运算,闭运算,形态学梯度计算,顶帽运算,黑帽运算等。其中,腐蚀和膨胀操作时形态学运算的基础。其它形态学操作,就是腐蚀和膨胀操作的各种结合。注意:形态学操作的对象都是针对二值化图像的。1. 腐蚀:腐蚀是最基本的形态学操作之一,它能够将图像的边缘点消除,
2022-04-22 00:16:16
3511
原创 OpenCV-Python学习 <四> 阈值处理
图像处理时,常常需要将图片二值化。以某个点为区分点,大于它的为一个值,小于它的赋另一个值。 opencv提供了cv.threshold(),处理阈值,并生成阈值处理后的结果。cv2.threshold()可以产生二值化的结果,也可以产生其它结果。retval, dst = cv2.threshold(src, thresh, maxval, type)retval: 代表返回的阈值,也就是此次阈值处理所用的阈值。dst: 代表阈值分割结果图,与原始图src有相同的大小和类型。sr
2022-04-14 00:24:05
3762
原创 OpenCV-Python学习 <三> 颜色空间及其转换
我们常看到各种颜色空间类型,有RGB色彩空间, Gray(灰度)色彩空间,XYZ色彩空间,YCrCb色彩空间,HSV色彩空间,HLS色彩空间,Bayer色彩空间等。不同的色彩空间都有其擅长处理的区域。所以就有了转换的需求。1. 色彩空间的介绍:1.1: Gray色彩空间:Gray通常指8位灰度图,像素取值范围[0-255], 当图像由RG颜色空间转换为Gray色彩空间时,其处理方法如下:Gray= 0.299*R + 0.587*G + .114*R当Gray转换成RGB色彩空间
2022-04-09 16:14:34
4459
原创 OpenCV-Python学习 <二> 图像像素存储和处理
像素是图像构成的基本单位,需要清晰的了解其在opencv-python的ndarray中如何存储以及如何处理的。在opencv-python中,通常
2022-04-06 18:40:57
1608
原创 Darknet训练Yolov4记录
之前看github上训练Yolov4的文档,当没有实际操作。现实操如下:https://github.com/AlexeyAB/darknet#how-to-train-to-detect-your-custom-objects
2022-03-14 19:08:31
144
原创 机器学习算法评估
在训练机器学习算法时,常会出现代价函数或loss值较高。这时候就需要优化。但通过什么手段优化,就成了一个问题。优化的方向有以下几种:A. 使用更多的训练样本。B. 尝试选用更少的特征。把不关键的特征去掉。C. 尝试增加一些特征。D. 尝试把现有的特征中一部分的多项式增加入特征。x1*x1, x2*x2, x1*x2等。E. 减小正则化参数lambda.F. 增大正则化参数lambda.在选择何种优化方法前,需要先评估学习算法。这就有了机器学习诊断法(Machine Lea
2021-10-10 15:41:10
365
原创 Python 类对象迭代功能的实现
在Python中,在使用 for...in...迭代对象时,其对象需要是可迭代对象,如List, String, tuple等。在使用 for...in...时,Python解释器会首先判断此对象是否实现了 __iter__ __next__等迭代器协议,如果没有,则会寻找此对象的__getitem__ , 如果都没有实现,则解释器会报:此对象非可迭代对象。例如:class Tiger(): def __init__(self, name): self.name =...
2021-10-02 11:09:41
505
原创 Python的可调用对象
在Python中,除了用户自定义的函数,内置函数外,调用运算符()还可以应用到其它对象上。如果想要判断一个对象是否可调用,可以使用callable()函数判断。def add(a, b): return a + bprint(callable(add))TruePython 中,大约有以下7类可调用对象。...
2021-09-24 12:01:23
938
原创 numpy ndarray学习 <二> 杂项记录
1. ndarray的转置:1.1:numpy.transpose(a,axes=None)反转或转置array的轴,返回转置后的array.对于有两个轴向的array. 返回转置后的矩阵。参数:a: array.axes: 可选。tuple or list of ints。如果指定,则它必须是包含 [0,1,..,N-1] 排列的元组或列表,其中 N 是 a 的轴数。1.2:numpy.ndarray.transpose与numpy.transpose()...
2021-09-09 15:16:28
99
原创 numpy ndarray学习<一> 基础
0. ndarray结构:numpy的特点之一就是N维数组--ndarray.ndarray是一系列同类型数据的集合,其中的每个元素在内存中都有相同的存储大小区域。ndarray内部,由以下部分组成:A. 一个指向数据的指针。B. 元素数据类型或dtype. 用来确定每个元素在内存中的大小。C. 一个表示ndarray形状(shape)的元组。用来确定各维度的大小。D. 一个跨度(stride)元组。用来确定跨越到下个元素的步长。1. ndarray创建:要创..
2021-09-04 11:33:59
462
原创 OpenCV-Python学习 <一> 初探
0. OpenCV-Python的安装:pip install opencv-python有时会安装失败。可以下载匹配的whl文件来安装。而要使用whl安装,需要先安装:wheelpip install wheel先确认需要的版本:#pythonPython 3.8.5 (default, Sep 3 2020, 21:29:08)所以需要下载:opencv_python-4.5.3.56-cp38-cp38-win_amd64.whl(34.9 MB)..
2021-08-26 16:06:49
362
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人