![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Python
python
Roxas__
这个作者很懒,什么都没留下…
展开
-
《python+opencv3.3视频教学 基础入门》分水岭算法 笔记
OpenCV教程:https://docs.opencv.org/master/d3/db4/tutorial_py_watershed.html图像二值化后,背景为黑,前景为白,用这个二值图像去做Distance Transform,就会得到距离矩阵,这个矩阵的尺寸和二值图像大小相同,而其中的每一个值代表的是该像素点到最近的黑色像素点的远近度,越远,值越高,距离矩阵中该点越亮。我们再将距离矩阵二值化后,就得到了前景种子图像,图像中每一个白色区域必定处于原图的前景中,也因此每一个白色区域是一个种子,分原创 2020-12-23 17:18:32 · 110 阅读 · 0 评论 -
sklearn 《Text feature extraction》笔记
官方教程见:https://scikit-learn.org/stable/modules/feature_extraction.html#text-feature-extraction6.2.3节1 The Bag of Words representation(词带表示法)文本分析是机器学习算法的一个主要应用领域。然而原始数据、符号序列不能直接反馈给算法本身,因为大多数算法希望得到的是固定大小的数字特征向量,而不是长度可变的原始文本文档。为了解决这个问题,scikit-learn提供了最常见原创 2020-12-11 22:31:31 · 428 阅读 · 0 评论 -
PyQt5《Menus and toolbars in PyQt5》 笔记
PyQt5 toolbarimport sysfrom PyQt5.QtWidgets import QMainWindow, QAction, qApp, QApplicationfrom PyQt5.QtGui import QIconclass Example(QMainWindow): def __init__(self): super().__init__() self.initUI() def initUI(self):原创 2020-12-11 16:20:26 · 79 阅读 · 1 评论 -
《python+opencv3.3视频教学 基础入门》其他形态学操作 笔记
顶帽顶帽是原图像与开操作之间的差值图像(右图),最后得到的是原图中各个小块的高亮区,即提取出了原图中的高亮斑点。黑帽黑帽是闭操作图像与原图像的差值图像,可以提取出原图中的黑色斑点。形态学梯度形态学梯度包含:基本梯度、内部梯度、外部梯度基本梯度是用膨胀后的图像减去腐蚀后的图像得到差值图像,也是opencv中支持的计算形态学梯度的方法,而此方法得到的梯度又被称为基本梯度。内部梯度是用原图像减去腐蚀之后的图像得到的差值图像,称为图像的内部梯度。外部梯度图像膨胀之后再减去原来的图像得到的差值图像原创 2020-12-01 21:38:40 · 105 阅读 · 0 评论 -
《python+opencv3.3视频教学 基础入门》开闭操作 笔记
开操作(Open)先腐蚀后膨胀。对于开操作,选择不同形状的核,可以得到不同的效果。如设置核为(15, 1),即水平线状的核,则在开操作后可以提取出二值图像中的水平线,如下:同理,设置核为(1, 15),即竖直线状的核,则在开操作后可以提取出二值图像相中的竖直线,如下:不止直线,斜线经过开操作后也可以被消掉:使用cv.morphologyEx()设置不同的结构元素,如cv.MORPH_ELLIPSE,圆形,可以把二值图像中类似圆形的白色区域保留下来,消除其他的,如下:注意:结构元素(核)的原创 2020-12-01 20:03:41 · 97 阅读 · 0 评论 -
《python+opencv3.3视频教学 基础入门》膨胀与腐蚀 笔记
参考:https://blog.csdn.net/alw_123/article/details/83868878https://www.jianshu.com/p/fc07d3065cf1import cv2 as cvimport numpy as np# 腐蚀(图像黑色区域侵蚀白色区域)def erode_demo(image): print(image.shape) gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) re原创 2020-12-01 15:52:44 · 82 阅读 · 0 评论 -
《python+opencv3.3视频教学 基础入门》对象测量 笔记
弧长与面积轮廓发现计算每个轮廓的弧长与面积,像素单位多边形拟合获取轮廓的多边形拟合结果approxPolyDP():contour、epsilon越小越折线越逼近真实形状、close是否为闭合区域API参考:https://www.jianshu.com/p/0205c963104d几何矩计算视频源码:import cv2 as cvimport numpy as npdef measure_object(image): # 先弱化一下噪声,如果轮廓识别时识别到了噪声,因为原创 2020-12-01 14:22:10 · 93 阅读 · 1 评论 -
《python+opencv3.3视频教学 基础入门》轮廓发现 笔记
轮廓发现轮廓发现是基于图像边缘提取的基础寻找对象的轮廓的方法。所以边缘提取的阈值选定会影响Uzi中轮廓发现结果。APIfindContours() 发现轮廓drawContours() 绘制轮廓注:虽然轮廓发现是基于图像边缘提取的结果来进行发现的,但是在图像边缘提取这一步我们可以只做到计算出梯度,然后用梯度图直接做轮廓发现,这样可以保留更多的图像信息。注:图像中的蓝色在转为灰度图时像素值可能会较小,导致Canny检测不到边缘,可以尝试把Canny的低阈值调小一些。视频源码:import cv原创 2020-12-01 10:44:41 · 95 阅读 · 0 评论 -
《python+opencv3.3视频教学 基础入门》霍夫变换(圆检测) 笔记
OpenCV官方指导:https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_imgproc/py_houghcircles/py_houghcircles.html注:因为霍夫圆检测对噪声比较敏感,所以首先要对图像做中值滤波。基于效率考虑,OpenCV中实现的霍夫变换圆检测是基于图像梯度实现的,分为两步:1. 检测边缘,发现可能的圆心。2. 基于第一步的基础上从候选圆心开始计算最佳半径大小。视频源码:impor原创 2020-11-30 21:11:29 · 170 阅读 · 0 评论 -
《python+opencv3.3视频教学 基础入门》霍夫变换(直线检测) 笔记
参考:https://blog.csdn.net/saltriver/article/details/80547245**如果x-y图像空间中有很多点在k-b空间中相交于一点(即x-y图像空间中有很多的点同属于一对儿k-b),那么这个交点就是我们要检测的直线。**这就是霍夫变换检测直线的基本原理。...原创 2020-11-30 17:28:08 · 130 阅读 · 0 评论 -
《python+opencv3.3视频教学 基础入门》Canny边缘提取 笔记
参考:https://zhuanlan.zhihu.com/p/42122107原创 2020-11-28 19:46:31 · 120 阅读 · 0 评论 -
《python+opencv3.3视频教学 基础入门》图像梯度 笔记
参考:https://blog.csdn.net/saltriver/article/details/78987096Sobel算子参考:https://blog.csdn.net/qq_29540745/article/details/51918004拉普拉斯算子图像深度视频示例:import cv2 as cvimport numpy as np# Sobel算子def sobel_demo(image): grad_x = cv.Sobel(image, cv.CV_32原创 2020-11-26 17:25:08 · 98 阅读 · 0 评论 -
《python+opencv3.3视频教学 基础入门》图像金字塔 笔记
参考:https://blog.csdn.net/xiamentingtao/article/details/78596240图像的上采样和下采样:https://blog.csdn.net/majinlei121/article/details/46742339图像金字塔的意义参考:https://blog.csdn.net/weixin_38208741/article/details/78081810...原创 2020-11-26 15:29:10 · 216 阅读 · 1 评论 -
《python+opencv3.3视频教学 基础入门》图像二值化 笔记
源码:import cv2 as cvimport numpy as np# 全局阈值方法def threshold_demo(image): # 首先转换为灰度图 gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) # ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY | cv.THRESH_OTSU) # 自己制定阈值: # ret, binary原创 2020-11-26 11:03:00 · 164 阅读 · 0 评论 -
《python+opencv3.3视频教学 基础入门》模板匹配 笔记
源码:import cv2 as cvimport numpy as npdef template_demo(): tpl = cv.imread("C:/cvtest/0002.jpg") target = cv.imread("C:/cvtest/0000.jpg") cv.imshow("template image", tpl) cv.imshow("target image", target) # 要使用的相关性因子 methods =原创 2020-11-26 11:02:42 · 142 阅读 · 0 评论 -
《python+opencv3.3视频教学 基础入门》直方图反向投影 笔记
源码:import cv2 as cvimport numpy as npfrom matplotlib import pyplot as pltdef back_projection_demo(): sample = cv.imread("C:/cvtest/0002.jpg") target = cv.imread("C:/cvtest/0000.jpg") roi_hsv = cv.cvtColor(sample, cv.COLOR_BGR2HSV) tar原创 2020-11-26 11:02:11 · 76 阅读 · 1 评论 -
《python+opencv3.3视频教学 基础入门》直方图应用 笔记
源码:import cv2 as cvimport numpy as np# 整体的直方图均衡化,可以增强图片对比度,但整体的# 直方图均衡化可能会造成图片的某些部分的信息丢失。# OpenCV中的直方图均衡化都是基于灰度图像,所以彩色图像要先转成灰度图。def equalHist_demo(image): gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) # cv.equalizeHist()自动调整图像的对比度,把图像变清晰化,对比原创 2020-11-26 11:01:50 · 88 阅读 · 0 评论 -
《python+opencv3.3视频教学 基础入门》图像直方图 笔记
源码:import cv2 as cvimport numpy as npfrom matplotlib import pyplot as pltdef plot_demo(image): # image.ravel()把image数组拉成一维数组。 plt.hist(image.ravel(), 256, [0, 256]) plt.show()# 绘制图像直方图,可以用来找出图像的特征。def image_hist(image): color = ('原创 2020-11-25 13:26:44 · 60 阅读 · 0 评论 -
《python+opencv3.3视频教学 基础入门》边缘保留滤波(EPF) 笔记
源码:import cv2 as cvimport numpy as np# 高斯双边模糊def bi_demo(image, sigmacolor, sigmaspace): # Parameter: # 1. src : Source 8-bit or floating-point, 1-channel or 3-channel image. # 2. d : Diameter of each pixel neighborhood that is us原创 2020-11-25 13:25:39 · 79 阅读 · 0 评论 -
《python+opencv3.3视频教学 基础入门》高斯模糊 笔记
源码:"""高斯模糊"""import cv2 as cvimport numpy as npdef clamp(pv): if pv > 255: return 255 if pv < 0: return 0 else: return pv# 加入高斯噪声def gaussian_noise(image): h, w, c = image.shape for row in rang原创 2020-11-25 13:21:23 · 102 阅读 · 0 评论 -
《python+opencv3.3视频教学 基础入门》模糊操作 笔记
源码:import cv2 as cvimport numpy as np# 均值模糊,均值模糊可以为图像去噪,均值模糊对随机噪声有非常好的效果。def blur_demo(image): dst = cv.blur(image, (5, 5)) # 卷积核越长,模糊越厉害。行卷积核是竖向模糊,列卷积核是横向模糊。也可以是正方形的卷积核。 cv.imshow("blur_demo", dst)# 中值模糊,可以去掉椒盐噪声。def median_blur_demo(i原创 2020-11-25 13:20:31 · 89 阅读 · 0 评论 -
《python+opencv3.3视频教学 基础入门》ROI与泛红填充 笔记
源码:import cv2 as cvimport numpy as np# 浸水def fill_color_demo(image): copyImg = image.copy() # 从原图像拷贝出一张图像 h, w = image.shape[:2] mask = np.zeros([h + 2, w + 2], np.uint8) # floodFill() # Parameter: # image: 要浸水的图像 #原创 2020-11-25 13:19:08 · 129 阅读 · 0 评论 -
《python+opencv3.3视频教学 基础入门》像素运算 笔记
源码:import cv2 as cvimport numpy as npdef add_demo(m1, m2): dst = cv.add(m1, m2) cv.imshow("add_demo", dst)def subtract_demo(m1, m2): dst = cv.subtract(m1, m2) cv.imshow("subtract_demo", dst)def divide_demo(m1, m2): dst = cv.di原创 2020-11-25 13:17:50 · 63 阅读 · 0 评论 -
《python+opencv3.3视频教学 基础入门》色彩空间 笔记
源码:import cv2 as cvimport numpy as np# # 使用hsv色彩空间和inRange()API来实现视频的色彩追踪# def extrace_object_demo():# capture = cv.VideoCapture("C:/cvtest/0001.mp4")# while(True):# ret, frame = capture.read()# if not ret:# b原创 2020-11-25 13:16:58 · 87 阅读 · 0 评论 -
《python+opencv3.3视频教学 基础入门》Numpy数组操作 笔记
源码:import cv2 as cvimport numpy as np# 每个像素的访问def access_pixels(image): print(image.shape) height = image.shape[0] width = image.shape[1] channels = image.shape[2] print("width : {}, height : {}, channels : {}".format(width, heigh原创 2020-11-25 13:15:49 · 107 阅读 · 0 评论 -
《python+opencv3.3视频教学 基础入门》图像加载与保存 笔记
源码:import cv2 as cvimport numpy as npdef video_demo(): capture = cv.VideoCapture(0) # 传int是打开对应编号摄像头,传路径是打开视频 while(True): # VideoCapture().read() ret, frame = capture.read() frame = cv.flip(frame, 1) cv.imshow原创 2020-11-25 13:14:57 · 95 阅读 · 0 评论 -
pytorch 《Writing Custom Datasets, Dataloaders and Transforms》官方指导 笔记
源码:from __future__ import print_function, divisionimport osimport torchimport pandas as pdfrom skimage import io, transformimport numpy as npimport matplotlib.pyplot as pltfrom torch.utils.data import Dataset, DataLoaderfrom torchvision import tra原创 2020-11-23 17:05:27 · 108 阅读 · 1 评论 -
Python ** 仅限关键字参数 笔记
《流畅的Python》p254简单讲,如果在函数形参列表定义了一个变量名前带 ** 的变量,并且在调用函数传参的时候把一个字典类型变量前面也加上 ** 并传给参数,那么传入的这个字典类型里但凡有键名和被调函数形参列表同名的键值对,这些键值对的值都会被赋给形参列表中对应的同名参数(形参列表里 前头带一个星星 * 的变量除外,原因还不懂)。其余的键值对,会被形参列表里带 ** 的参数捕获,并创建成一个字典。"""关于 ** 的笔记"""# note:# 第一个参数后面的任意个参数会被 *co原创 2020-11-13 17:26:08 · 186 阅读 · 0 评论 -
Python __call__方法 笔记
如果类定义了 call 方法,那么它的实例可以作为函数调用。IndexError 错误类型:有序表索引超出范围https://www.cnblogs.com/2bjiujiu/p/9063864.htmlraise 关键字:用于手动抛出异常http://c.biancheng.net/view/2360.htmlLookupError 错误类型:https://blog.csdn.net/gzlaiyonghao/article/details/6124883示例:import rand原创 2020-11-13 16:07:56 · 54 阅读 · 0 评论