![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
qq_32340685
这个作者很懒,什么都没留下…
展开
-
python fields="__all__"用法
百度有很多帖子将__all__属性都是,就是讲字段添加到__all__属性里面。 在from foo import*时传递得字段是__all__已经添加好的.__all__ = ['bar', 'baz'] waz = 5bar = 10def baz(): return 'baz'from foo import * print barprint baz重点来了:在玩django时百度搜了半天没搜...原创 2018-06-21 12:06:09 · 7978 阅读 · 0 评论 -
第十七天 圆形矩形多边形的识别
import cv2 as cvimport numpy as npdef measure_object(image): gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY | cv.THRESH_OTSU) pr...原创 2018-11-01 21:32:30 · 499 阅读 · 0 评论 -
第十九天开闭操作 提取水平、垂直线
开闭操作都是基于先腐蚀再膨胀进行运算的, kernel = cv.getStructuringElement(cv.MORPH_ELLIPSE, (**, **)) 腐蚀时候将x轴设为1个像素点,即去掉水平方向的线。竖直方向同理. 总结开操作可以删除小的干扰块闭操作是先膨胀再腐蚀,参见下图,黑色小于白色区域的都会被取消import cv2 as cvimport numpy as n...原创 2018-11-03 22:56:20 · 319 阅读 · 0 评论 -
第十八天opencv膨胀腐蚀
膨胀就是相邻三个像素点|| 腐蚀就是相邻三个像素点&&膨胀作用:将多余相素放大。去除 (增大白色面积)腐蚀作用:将多余相素去掉再缩小。恢复原图. (增大相邻黑色面积)import cv2 as cvimport numpy as npdef erode_demo(image): print(image.shape) gray =...原创 2018-11-02 20:22:15 · 216 阅读 · 0 评论 -
第十九天黑帽顶帽
numpy array 和 python list 有什么区别?标准Python的列表(list)中,元素本质是对象。如:L = [1, 2, 3],需要3个指针和三个整数对象,对于数值运算比较浪费内存和CPU。因此,Numpy提供了ndarray(N-dimensional array object)对象:存储单一数据类型的多维数组。 import cv2 as ...原创 2018-11-04 20:02:08 · 269 阅读 · 0 评论 -
第十九天分水岭及归一化标准化
pyrMeanShiftFiltering。这个函数严格来说并不是图像的分割,而是图像在色彩层面的平滑滤波,它可以中和色彩分布相近的颜色,平滑色彩细节,侵蚀掉面积较小的颜色区域 归一化(normalization): ,如果对输出结果范围有要求,用归一化 标准化(standardization): 如果数据存在异常值和较多噪音,用标准化,可以间接通过中心化避免异常值和极端值...原创 2018-11-04 20:58:55 · 164 阅读 · 0 评论 -
第十八天调用摄像头人脸识别(有误判)
import cv2 as cvimport numpy as npdef face_detect_demo(image): gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) ##叠加分类器 face_detector = cv.CascadeClassifier("M:/opencv3&python视频 淘宝一枝...原创 2018-11-05 17:18:02 · 392 阅读 · 0 评论 -
第十九天识别二维码
import cv2 as cvimport numpy as npfrom PIL import Imageimport pytesseract as tessdef recognize_text(src): gray = cv.cvtColor(src, cv.COLOR_BGR2GRAY) ret, binary = cv.threshold(gray, 0, 2...原创 2018-11-05 17:18:34 · 193 阅读 · 0 评论 -
opencv ORB两张图片蛮力匹配及官方例子错误,img3 = cv.drawMatches(img1,kp1,img2,kp2,matches[:10], flags=2)
踩坑opencv3.4官方例子量图片匹配img3 = cv.drawMatches(img1,kp1,img2,kp2,matches[:10], flags=2), 第六个函数outimg官方没有,很多书也是复制粘贴并没有实际操作会报错TypeError: Required argument 'outImg' (pos 6) not found亲测成功img2 = cv2.drawMa...原创 2018-11-19 10:00:50 · 1378 阅读 · 0 评论 -
视频分析Meanshift动态物体识别
eanshift 算法的基本原理是和很简单的。假设我们有一堆点(比如直方图反向投影得到的点),和一个小的圆形窗口,我们要完成的任务就是将这个窗口移动到最大灰度密度处(或者是点最多的地方)。如下图所示:初始窗口是蓝色的“C1”,它的圆心为蓝色方框“C1_o”,而窗口中所有点质心却是“C1_r”(小的蓝色圆圈),很明显圆心和点的质心没有重合。所以移动圆心 C1_o 到质心 C1_r,这样我们就...原创 2018-11-22 11:43:09 · 733 阅读 · 0 评论 -
视频跟踪 cv2.CamShift跟踪有问题
这个算法首先要使用 meanshift,meanshift 找到(并覆盖)目标之后,再去调整窗口的大小,s = 2x√M00256 。它还会计算目标对象的最佳外接椭圆的角度,并以此调节窗口角度。然后使用更新后的窗口大小和角度来在原来的位置继续进行 meanshift。重复这个过程知道达到需要的精import cv2import numpy as npfrom matplotlib im...原创 2018-11-22 19:46:19 · 555 阅读 · 0 评论 -
摄像头Lucas-Kanade法分析光流
现在我们要使用第二条假设,邻域内的所有点都有相似的运动。LucasKanade 法就是利用一个 3x3 邻域中的 9 个点具有相同运动的这一点。这样我们就可以找到这 9 个点的光流方程,用它们组成一个具有两个未知数 9 个等式的方程组,这是一个约束条件过多的方程组。一个好的解决方法就是使用最小二乘拟合。下面就是求解结果:(有没有发现上边的逆矩阵与 Harris 角点检测器非常相似,这说明角...原创 2018-11-26 10:44:03 · 480 阅读 · 0 评论 -
OPENCV K邻近
原理kNN可以说是最简单的监督学习分类器了。想法也很简单,就是找出测试数据在特征空间中的最近邻居。我们将使用下面的图片介绍上图中的对象可以分成两组,蓝色方块和红色三角。每一组也可以称为一个类。我们可以把所有的这些对象看成是一个城镇中房子,而所有的房子分属于蓝色和红色家族,而这个城镇就是所谓的特征空间。(你可以把一个特征空间看成是所有点的投影所在的空间。例如在一个 2D 的坐标空间中,每...原创 2018-11-29 19:30:31 · 200 阅读 · 0 评论 -
视频分析稠密光流
Lucas-Kanade 法是计算一些特征点的光流(我们上面的例子使用的Shi-Tomasi 算法检测到的角点)。OpenCV 还提供了一种计算稠密光流的方法。它会图像中的所有点的光流。这是基于 Gunner_Farneback 的算法(2003 年)。下面的例子就是使用上面的算法计算稠密光流。结果是一个带有光流向量(u,v)的双通道数组。通过计算我们能得到光流的大小和方向。我们使用颜色对结果进行...原创 2018-11-27 18:55:55 · 1252 阅读 · 2 评论 -
视觉分析createBackgroundSubtractorKNN去背景
在很多基础应用中背景检出都是一个非常重要的步骤。例如顾客统计,使用一个静态摄像头来记录进入和离开房间的人数,或者是交通摄像头,需要提取交通工具的信息等。在所有的这些例子中,首先要将人或车单独提取出来。技术上来说,我们需要从静止的背景中提取移动的前景。如果你有一张背景(仅有背景不含前景)图像,比如没有顾客的房间,没有交通工具的道路等,那就好办了。我们只需要在新的图像中减去背景就可以得到前景对象了。但...原创 2018-11-27 19:11:06 · 8947 阅读 · 0 评论 -
python _**、__**区别
(1)_xxx "单下划线 " 开始的成员变量叫做保护变量,意思是只有类实例和子类实例能访问到这些变量,需通过类提供的接口进行访问;不能用'from module import *'导入 (2)__xxx 类中的私有变量/方法名 (Python的函数也是对象,所以成员方法称为成员变量也行得通。)," 双下划线 " 开始的是私有成员,意思是只有类对象自己能访问,连子类对象也...原创 2019-01-23 15:08:03 · 261 阅读 · 0 评论 -
第十七天边缘检测
获取轮廓的多边形拟合结果 approxPlyDp -coutour -epsilon 越小越折线越逼近真是形状 -colse 是否为闭合区域 import cv2 as cvimport numpy as npdef edge_demo(image): blurred = cv.GaussianBlur(image, (3, 3), 0) ...原创 2018-11-01 20:41:46 · 108 阅读 · 0 评论 -
第十六天霍夫圆检测
void HoughCircles(InputArray image,OutputArray circles, int method, double dp, double minDist, double param1=100,double param2=100, int minRadius=0, int maxRadius=0 )第一个参数,InputArray类型的image,输入图像,即...原创 2018-10-31 20:09:50 · 240 阅读 · 1 评论 -
opencv3.0第一天读取摄像头和图片大小类型
import cv2 as cvimport numpy as npdef video_demo(): ##调用摄像头 capture = cv.VideoCapture(0) while(True): capture = cv.VideoCapture(0) while (True): ret, fram...原创 2018-10-22 18:00:26 · 1315 阅读 · 0 评论 -
第六天双边滤波和均值漂移
均值漂移迭代空间构建:以输入图像上src上任一点P0为圆心,建立物理空间上半径为sp,色彩空间上半径为sr的球形空间,物理空间上坐标2个—x、y,色彩空间上坐标3个—R、G、B(或HSV),构成一个5维的空间球体。其中物理空间的范围x和y是图像的长和宽,色彩空间的范围R、G、B分别是0~255。双边滤波原理上式中的单位化分部综合了两种高斯权重于一起而得到,其中的c与s计算可以详细...原创 2018-10-25 10:49:25 · 453 阅读 · 0 评论 -
第七天 opencv 2d直方图和直方图反投影
import cv2 as cvimport numpy as npfrom matplotlib import pyplot as pltdef back_projection_demo(): sample = cv.imread("C:/Users/weiqiangwen/Desktop/sest/data/pic4.png") target = cv.imread(...原创 2018-10-25 15:11:28 · 348 阅读 · 0 评论 -
第八天直方图巴氏距离,相关性,卡方
直方图均值化,opencv中必须是灰度图片才能操作。import cv2 as cvimport numpy as npdef equalHist_demo(image): gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) dst = cv.equalizeHist(gray) cv.imshow("equalHis...原创 2018-10-25 20:15:09 · 2142 阅读 · 0 评论 -
opencv第二天视频文件打开及色彩分离合并
import cv2 as cvimport numpy as npdef extrace_object_demo(): capture = cv.VideoCapture("C:/Users/weiqiangwen/Desktop/sest/QQ视频_2703CD4E8BBCC4F5B071A7A61FA35AB7.mp4") #在读取时有可能出现ret=false用播放器...原创 2018-10-23 20:15:15 · 273 阅读 · 0 评论 -
第十一天 二值化
注:二值化 cv.threshold类型参考地址https://blog.csdn.net/u012566751/article/details/77046445 import cv2 as cvimport numpy as npdef custom_threshold(image): gray = cv.cvtColor(image, cv.COLOR_BGR...原创 2018-10-29 11:14:15 · 92 阅读 · 0 评论 -
第九天 直方图反投影和2d直方图
import cv2 as cvimport numpy as npfrom matplotlib import pyplot as pltdef back_projection_demo(): sample = cv.imread("C:/Users/weiqiangwen/Desktop/sest/data/pic4.png") target = cv.imread(...原创 2018-10-26 09:18:58 · 113 阅读 · 0 评论 -
十四天canny边缘检测
1高斯滤波 2.使用偏导数 3.求出梯度值其中得出梯度是差异较大域的切线port cv2 as cvdef edge_demo(image): blurred = cv.GaussianBlur(image, (3, 3), 0) gray = cv.cvtColor(blurred, cv.COLOR_BGR2GRAY) xgrad...原创 2018-10-31 08:54:11 · 119 阅读 · 1 评论 -
第十五天霍夫直线检测
hough空间(离散极坐标)的表示原因:图像中直线的表示,由斜率和截距表示,而极坐标中用(r, theta)表示.r = cos(theta)*x + sin(theta)*y##测直线cv.HoughLines算法不够完善需要代码补充 ,cv.HoughLinesP则算法补充import cv2 as cvimport numpy as npdef line_detect...原创 2018-10-31 11:03:37 · 132 阅读 · 0 评论 -
第三条python-opecv图片混合及亮度调节
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) #量图片减...原创 2018-10-24 10:40:00 · 379 阅读 · 0 评论 -
第十二天 分块处理二值法及去雪花
import cv2 as cvimport numpy as npdef big_image_binary(image): print (image.shape) cw =56 ch=56 h,w = image.shape[:2] gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) for row in...原创 2018-10-29 19:21:22 · 130 阅读 · 0 评论 -
第十三天 高斯金字塔拉普拉斯金字塔
import cv2 as cvimport numpy as npdef pyramid_demo(image): ##高斯金字塔 levels =3 temp = image.copy() pyramid_images = [] for i in range(levels): dst = cv.pyrDown(temp) ...原创 2018-10-29 19:57:32 · 156 阅读 · 0 评论 -
第十天模板匹配,卷积基本概念
卷积具体介绍这篇文章是我看的最好的:https://blog.csdn.net/qq_39521554/article/details/79083864 CV_TM_SQDIFF 平方差匹配法:该方法采用平方差来进行匹配;最好的匹配值为0;匹配越差,匹配值越大。 CV_TM_CCORR 相关匹配法:该方法采用乘法操作;数值越大表明匹配程度越...原创 2018-10-26 17:51:08 · 905 阅读 · 0 评论 -
第四天ROI图片切割合并和泛洪填充
import cv2 as cvimport numpy as np泛洪填充算法(Flood Fill Algorithm)泛洪填充算法又称洪水填充算法是在很多图形绘制软件中常用的填充算法,最熟悉不过就是windows paint的油漆桶功能。算法的原理很简单,就是从一个点开始附近像素点,填充成新的颜色,直到封闭区域内的所有像素点都被填充新颜色为止。泛红填充实现最常见有四邻域...原创 2018-10-24 11:38:18 · 175 阅读 · 0 评论 -
第四天 opencv 图像变换和空间图像滤波
解释图像变换和空间滤波区别即cv.medianBlur和cv.filter2D在空间域的操作主要可以分为两类:第一类是所谓的“图像强度变换”(Intensity Transform),另一类是所谓的“空间域图像滤波”(Spatial Filtering)。这两者的区别主要是处理方法的不同。前者对单个像素点进行操作,例如通过阈值函数实现图形的二值化,实现灰度平均等。而后者建立在邻域(neighb...原创 2018-10-24 15:46:21 · 312 阅读 · 0 评论 -
python max(a,key = lambda a:a[1]) max的简洁用法
max(x.items(),key = lambda a:a[1]) 将x.items()字典面最大的值赋值给a[1]并返回给haha3原创 2019-01-29 12:16:16 · 2032 阅读 · 1 评论