1. cv2.VideoCapture('test.avi') 进行视频读取 参数说明:‘test.avi’ 输入视频的地址2. cv2.getStructureElement(cv2.MORPH_ELLIPSE, (3, 3))  # 构造一个全是1的kernel用于形态学的操作 参数说明:cv2.MORPH_ELLIPSE 生成全是1的kernel,(3, 3)表示size 3.cv2.createBackgroundSubtractorMOG2().apply(image) 对图像进行混合…
本文链接:https://blog.csdn.net/qq_18234121/article/details/82763385 作者:冻人的蓝鲸梁思成 视频分割算法可以从时域和空域两个角度考虑.时域分割算法利用视频流时域连续性,通过 相邻帧的时域变化来检测运动目标.在摄像头静止的情况下,常用的方法有帧差法和减背景法. 帧差法比较直观实用,对光照的变化干扰不敏感,但是 对目标的检测不准确,对于缓慢运动的目标甚至可 能无法提取出目标边界,对于快速运动的目标提取 出的目标区域又过大.减背景法容易得到目…
videoObj = VideoReader('4.avi');%读视频文件 nframes = get(videoObj, 'NumberOfFrames');%获取视频文件帧个数 : nframes currentFrame = read(videoObj, k);%读取第i帧 subplot(,,);%创建图像显示窗口并获取第一个窗口句柄 imshow(currentFrame); % Convert to grayscale. grayFrame = rgb2gray(currentFr…
一.相关博客 背景建模相关资料收集,各个链接都已给出. 资料,不可能非常完整,以后不定期更新. -----------------切割线----------------- 这个哥们总结的非常好啊,看完了基本就有一个比較"全面"的认知可.能够侃晕一些外行了,哈哈哈... 千里8848: 背景建模(一) Evaluation of Background Subtraction Techniques for Video Surveillance 背景建模(二)--以像素值为特征的方法(1)…
一.Harris角点 如上图所示,红色框AB都是平面,蓝色框CD都是边缘,而绿色框EF就是角点. 平面:框往X或Y抽移动,变化都很小. 边缘:框沿X或Y轴移动,其中一个变化很小,而另外一个变化比较大. 角点:框沿X或Y轴移动,两个变化都比较大. 见<图像基础>笔记第7页 二.背景建模 使用帧差法: 即用后一帧图像减去前一帧图像,得到运动的物体,但是会出现空洞(前景物体的一个面灰度变化不大,减完得到接近0的数). 使用GMM方法: # -*- coding:utf-8 -*- __author_…
1,CodeBook的来源 先考虑平均背景的建模方法.该方法是针对每一个像素,累积若干帧的像素值,然后计算平均值和方差,以此来建立背景模型,相当于模型的每一个像素含有两个特征值,这两个特征值只是单纯的统计量,没有记录该像素值的历史起伏,即没有考虑时间序列和噪声干扰,不具备鲁棒性,因此建模时不能有运动前景的部分,要求光线保持不变. 如果我们考虑到时间起伏序列建模,比如利用60帧图像建模,对于每一个像素点会产生60个像素值,分别给他们加上60个相关的权值,或者进一步统计不同像素值出现的频次或者距离,…
1.cv2.morphologyEx(src, op, kernel) 进行各类形态学的变化 参数说明:src传入的图片,op进行变化的方式, kernel表示方框的大小 2.op =  cv2.MORPH_OPEN 进行开运算,指的是先进行腐蚀操作,再进行膨胀操作 3. op = cv2.MORPH_CLOSE 进行闭运算, 指的是先进行膨胀操作,再进行腐蚀操作 开运算:表示的是先进行腐蚀,再进行膨胀操作 闭运算:表示先进行膨胀操作,再进行腐蚀操作 代码: 第一步:使用cv2.imread载入…
1. cv2.dft(img, cv2.DFT_COMPLEX_OUTPUT) 进行傅里叶变化 参数说明: img表示输入的图片, cv2.DFT_COMPLEX_OUTPUT表示进行傅里叶变化的方法 2. np.fft.fftshift(img)  将图像中的低频部分移动到图像的中心 参数说明:img表示输入的图片 3. cv2.magnitude(x, y) 将sqrt(x^2 + y^2) 计算矩阵维度的平方根 参数说明:需要进行x和y平方的数 4.np.fft.ifftshift(img…
1.op = cv2.GRADIENT 用于梯度运算-膨胀图像-腐蚀后的图像 梯度运算:表示的是将膨胀以后的图像 - 腐蚀后的图像,获得了最终的边缘轮廓 代码: 第一步:读取pie图片 第二步:进行腐蚀和膨胀操作 第三步:将膨胀的图像 - 腐蚀的图像,获得相减得图像 第四步:使用cv2.morphologyEx(src, cv2.GRADIENT, kernel) 获得梯度运算的图片的操作 第五步:绘制第三步和第四步生成的图片 import cv2 import numpy as np # 第一…
1.cv2.erode(src, kernel, iteration) 参数说明:src表示的是输入图片,kernel表示的是方框的大小,iteration表示迭代的次数 腐蚀操作原理:存在一个kernel,比如(3, 3),在图像中不断的平移,在这个9方框中,哪一种颜色所占的比重大,9个方格中将都是这种颜色 代码: 1.读取带有毛刺的图片 2.使用cv2.erode进行腐蚀操作,比较不同的kernel对结果的影响 3.读取圆的图片 4.使用cv2.erode进行腐蚀操作,比较不同的迭代次数对结…