计算机视觉
a1111111111ss
本人博客都是学习笔记有原创也有转载并不是为了盈利,为了有个地方放笔记顺便也分享一下自己学习笔记,
展开
-
图像特征提取Haar特征的介绍
参考大佬的https://blog.csdn.net/q123456789098/article/details/52748918(三)Haar特征1、Haar-like特征Haar-like特征最早是由Papageorgiou等应用于人脸表示,Viola和Jones在此基础上,使用3种类型4种形式的特征。Haar特征分为三类:边缘特征、线性特征、中心特征和对角线特征,组合成特征模板。特征模板内有白色和黑色两种矩形,并定义该模板的特征值为白色矩形像素和减去黑色矩形像素和。Haar特征值反映了图像的转载 2020-05-25 17:00:41 · 320 阅读 · 0 评论 -
图片特征提取LBP特征的介绍
参考大佬的https://blog.csdn.net/q123456789098/article/details/52748918LBP特征LBP(Local Binary Pattern,局部二值模式)是一种用来描述图像局部纹理特征的算子;它具有旋转不变性和灰度不变性等显著的优点。它是首先由T. Ojala, M.Pietikäinen, 和D. Harwood 在1994年提出,用于纹理特征提取。而且,提取的特征是图像的局部的纹理特征;1、LBP特征的描述原始的LBP算子定义为在33的窗口内,转载 2020-05-25 16:44:50 · 683 阅读 · 0 评论 -
python+opencv计算机视觉去噪处理的均值滤波,高斯滤波,中值滤波,双边滤波,方框滤波介绍
参考大佬的xzbwm576https://blog.csdn.net/u011304078/article/details/100171317详解均值滤波,高斯滤波,中值滤波,双边滤波,方框滤波滤波器种类线性滤波: 方框滤波、均值滤波、高斯滤波非线性滤波: 中值滤波、双边滤波图像图像滤波要求:不能损害图像的轮廓和边缘,图像清晰视觉效果更好一、图像平滑图像平滑的目的之一是消除噪声,二是模糊图像。(1)方框滤波它是滤波器中最简单的,是通过滤波器核K内每个像素值的平均值得到的,滤波核如原创 2020-05-25 15:41:44 · 899 阅读 · 0 评论 -
python+opencv计算机视觉去噪处理的均值滤波,高斯滤波,中值滤波,双边滤波简答精华总结
借鉴大佬的roclinghttps://blog.csdn.net/weixin_41424481/article/details/96738308?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-9(这个博主写的真的简洁明了)想要详细了解的参考(这个图是真的太棒了)结果import numpy as npimport cv2import matplotlib.pyplot as plt######## 四个原创 2020-05-25 15:41:03 · 1707 阅读 · 0 评论 -
HOG特征、LBP特征、Haar-like特征用到的知识点清单
知识点清单(个人觉得需要的就总结一下)方向梯度直方图特征(Histogram of Oriented Gradient, HOG):是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子通过计算和统计图像局部区域的梯度方向直方图来构成特征更直观的看出差别支持向量机(support vector machines, SVM):是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器SVM的的学习算法就是求解凸二次规划的最优化算法。细胞单元(cell):整个图像分成单个小个的连原创 2020-05-24 11:24:57 · 324 阅读 · 0 评论 -
图像特征提取HOG特征介绍
参考大佬的名字:q123456789098https://blog.csdn.net/q123456789098/article/details/52748918(一)HOG特征1、HOG特征方向梯度直方图特征是在计算机视觉和图像处理中用来进行物体检测的特征描述梯度直方图特征通过计算和统计图像局部区域的梯度方向直方图来构成特征Hog特征结合SVM分类器广泛应用于图像识别中,尤其在行人检测中获得了极大的成功。需要提醒的是,HOG+SVM进行行人检测的方法是法国研究人员Dalal在2005的CV转载 2020-05-24 11:00:47 · 1309 阅读 · 0 评论 -
HOG特征中的Gamma校正原理
名字:零钱币借鉴大佬的https://blog.csdn.net/linqianbi/article/details/78617615gamma校正原理: 假设图像中有一个像素,值是 200 ,那么对这个像素进行校正必须执行如下步骤: 1. 归一化 :将像素值转换为 0 ~ 1 之间的实数。 算法如下 : ( i + 0. 5)/256 这里包含 1 个除法和 1 个加法操作。对于像素 A 而言 , 其对应的归一化值为 0. 783203 。2. 预补偿 :根据公式 , 求原创 2020-05-24 10:04:23 · 1053 阅读 · 0 评论 -
python的OpenCV函数(floodFill)漫水填充
借鉴大佬的(他的这两个图解太棒了)https://blog.csdn.net/weixin_42508025/article/details/84029054python+opencv **漫水填充**(floodFill)实例详解Python_Zhou 2018-11-13 15:00:28 5484 收藏 13展开思想漫水填充:就是将与种子点相连接的区域换成特定的颜色,通过设置连通方式或像素的范围可以控制填充的效果。通常是用来标记或分离图像的一部分对其进行处理或分析,或者通过掩码来加原创 2020-05-14 10:45:02 · 821 阅读 · 0 评论 -
计算机视觉OpenCV答题卡识别项目实战
本文借鉴大佬的(跪求不要举报我 Orz Orz )https://www.jianshu.com/p/01f32eb99318答题卡识别项目实战# 预处理image = cv2.imread(args["image"])contours_img = image.copy()gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)blurred = cv2.GaussianBlur(gray, (5, 5), 0)cv_show('blurred',blur原创 2020-05-11 16:38:54 · 1111 阅读 · 0 评论 -
计算机视觉OpenCV停车场车位识别
本文借鉴大佬的(跪求不要举报我 Orz Orz )https://www.jianshu.com/p/9b9112e79ed5停车场车位识别要做的步骤1、计算有几个车2、计算还剩几个车位3、哪个停车位被占用了,哪个停车位没有被占用。读取图片def select_rgb_white_yellow(self,image): #过滤掉背景 lower = np.uint8([120, 120, 120]) upper = np.uint8([255, 255, 255]原创 2020-05-11 10:22:12 · 1336 阅读 · 1 评论 -
计算机视觉OpenCV信用卡实战
本文借鉴大佬的(跪求不要举报我 Orz Orz )https://www.jianshu.com/p/eebac3f3ec5b识别信用卡数字流程:1、运用模板(一排数字)去匹配,模板中的,传入图像的数字,然后进行轮廓检测吧这一排数字检测出来2、用框框给这个匹配结果框住,就得到轮廓的外接矩阵3、将从模板中匹配出来的一排数字截取出来4、使用矩形的长宽比之间的差异使得信用卡的数字矩形框能够被选择出来。5、与需要识别的信用卡当中的外接矩形resize成同样的大小。6、使用for循环依次检测。目的原创 2020-05-10 13:24:55 · 236 阅读 · 0 评论 -
计算机视觉OpenCV红绿灯检测
红绿灯检测本设计中红绿灯检测程序主要有detectColor.py文件和TLState.py两个文件。在detectColor.py文件中主要是检测被TLState.py分割出来的灯的颜色,首先利用OpenCV中的cv2.cvtColor(image,cv2.COLOR_ BGR2HSV)函数,将图片从BGR格式转换为HSV格式。之后利用cv2.inRange()函数设阈值去除背景部分,再进行...原创 2020-05-08 15:37:45 · 8122 阅读 · 9 评论 -
计算机视觉OpenCV光流估计
光流估计光流是一种运动模式,这种运动模式指的是一个物体、表面、边缘在一个视角下由一个观察者(比如眼睛、摄像头等)和背景之间形成的明显移动Lucas–Kanade光流算法是一种两帧差分的光流估计算法算法实现:Lucas-Kanade 算法eg: p1, st, err = cv2.calcOpticalFlowPyrLK(old_gray, frame_gray, p0, None, **l...原创 2020-05-08 11:55:45 · 800 阅读 · 0 评论 -
计算机视觉OpenCV混合高斯模型
混合高斯模型识别视屏流中运动的人代码实现import numpy as npimport cv2cap=cv2.VideoCapture(‘test.avi’) # 视频地址#形态学操作需要使用(弄出来椭圆的结构)kernel=cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(3,3)) #MORPH_ELLIPSE为椭圆(getStru...原创 2020-05-08 11:46:25 · 316 阅读 · 0 评论 -
计算机视觉OpenCV特征匹配
特征匹配opencv中knnMatch是一种蛮力匹配,基本原理是将待匹配图片的sift等特征与目标图片中的全部sift特征一对n的全量便利,找出相似度最高的前k个。当待匹配的图片增多时,需要的计算量太大,所以考虑是否可以通过降维的方式减少计算过程中的时间花费。特征匹配1、brute—force,蛮力匹配全部过程构建一个边缘检测算法sift获得一个暴力匹配器的对象检测特征一对一...原创 2020-05-07 22:08:29 · 383 阅读 · 0 评论 -
计算机视觉OpenCV Harris角点检测和sift算法
Harris角点检测和sift算法数学原理参考https://mp.weixin.qq.com/s?__biz=MzI1ODEzMDQ3OQ==&mid=2247483887&idx=1&sn=de2eafd31ae3a4065480dacf8e0668e3&scene=19&token=1038729941&lang=zh_CN#wechat_...原创 2020-05-07 21:07:30 · 308 阅读 · 0 评论 -
计算机视觉OpenCV傅里叶变换
傅里叶变换傅里叶变换的作用:高频:变化剧烈的灰度分量。例如边界。低频:变化缓慢的灰度分量,例如大海。低通滤波器:只保留低频,会使得图像模糊高通滤波器:只保留高频,会使得图像细节增强cv2.dft(img, cv2.DFT_COMPLEX_OUTPUT) 进行傅里叶变化参数说明: img表示输入的图片, cv2.DFT_COMPLEX_OUTPUT表示进行傅里叶变化的方法np....原创 2020-05-07 16:42:00 · 526 阅读 · 0 评论 -
计算机视觉OpenCV图像梯度计算
一、图像梯度计算1)sobel算子(作用是标注轮廓区域)形式一般是这样竖着中间是0那就是右边减去左边,如果横着中间是0那就是上面减去下面Gx即卷积完之后是右边像素-左边像素,Gy是上边像素-下边像素计算最好分开x,y算不然结果会不准dx=1,dy=0时,表示对其进行Gx计算。反之亦然。白到黑是正数,黑到白是负数,所有的负数会被截断成0(黑色)。所以得取绝对值。使用cv2.CV_64F...原创 2020-05-07 16:29:54 · 1096 阅读 · 0 评论 -
计算机视觉OpenCV图像形态学操作
图像形态学操作1、腐蚀操作腐蚀的效果是把图片"变瘦一般图片是二值化数据,即只有黑白两种颜色。因为是二值化图,只有0和255kernel=np.ones((3,3),np.uint8)erosion=cv2.erode(img,kernel,iterations=1)2、膨胀操作kernel=np.ones((3,3),np.uint8)dilation = cv2.dilate(...原创 2020-05-07 16:27:01 · 192 阅读 · 0 评论 -
计算机视觉openCV直方图与均值化
openCV一、直方图与均值化直方图(个人看法:他就是把一个图像(一大堆的矩阵数字)全部按照中方图统计一下从0-255)三个颜色统计出来三个线代码import cv2from matplotlib import pyplot as pltimg=cv2.imread(‘cat.jpg’)color=(‘b’,‘g’,‘r’)for i,col in enumerate(c...原创 2020-05-07 16:24:52 · 312 阅读 · 0 评论 -
计算机视觉openCV边缘检测
openCV(二)一、图像梯度计算1)sobel算子(作用是标注轮廓区域)形式一般是这样竖着中间是0那就是右边减去左边,如果横着中间是0那就是上面减去下面Gx即卷积完之后是右边像素-左边像素,Gy是上边像素-下边像素计算最好分开x,y算不然结果会不准dx=1,dy=0时,表示对其进行Gx计算。反之亦然。白到黑是正数,黑到白是负数,所有的负数会被截断成0(黑色)。所以得取绝对值。使用...原创 2020-05-07 11:10:21 · 422 阅读 · 0 评论 -
计算机视觉openCV图像的基本操作
openCV图像形态学操作读取图像img=cv2.imread(‘name’) 彩色的img=cv2.imread(‘name’,cv2.IMREAD_GRAYSCALE) 黑白图像保存cv2.imwrite(‘mycat.jpg’,img)读取视频①cv2.VideoCapture{‘name.mp4’}可以捕获摄像头,用数字来控制不同设备,例如:0,1 ②如果是视频文件,直接指...原创 2020-05-06 17:21:29 · 401 阅读 · 0 评论