
计算机视觉
dafydd_成
一面成功,一面堕落
展开
-
计算机视觉基础系列(python与opencv的操作与运用)(一)--环境配置
一、系列博客所使用的编译环境(不用必须一样,但是必须都是3.0以上版本):OpenCV 3.4 Python 3.5二、环境配置这里需要注意的是版本问题,opencv和python的版本都必须是3.0以上的版本,在opencv和python中,opencv2和opencv3不同之处还是比较多的,且在python中,python2.0和python3.0的版本的代码差别也有一些...原创 2019-03-11 15:40:09 · 513 阅读 · 0 评论 -
计算机视觉基础系列(python与opencv的操作与运用/tensorflow的基础介绍)(十八)---直方图均衡化源码
1 灰度图的直方图均衡化灰度直方图的均衡化的过程是一个累计概率完成映射的过程,举个例子:像素0-100的概率累计相加得到0.5,则用255*0.5进行映射得到50来代替这个100这个像素值。又相应的API,这里就不做API的代码了,我们写均衡化的源码,代码如下:import cv2import numpy as npimg = cv2.imread('1.jpg', 1)cv2...原创 2019-06-26 09:47:03 · 415 阅读 · 0 评论 -
计算机视觉基础系列(python与opencv的操作与运用/tensorflow的基础介绍)(十三)---图像的融合和边缘检测
1 图像融合被叠加的两张图片的大小、类型(高度/宽度/通道数)必须相同。但是如果这两张图片大小不相同,有什么方法解决?具体解决方法请点击此处查看1.1cv2.add(img1,img2):直接对两张图片作加法运算Numpy中可以直接用res = img1 + img2相加,但这两者的结果并不相同,因为OpenCV中的加法运算是饱和运算(就是当运算结果大于一个上限或小于一个下限时,结...原创 2019-06-24 12:17:58 · 867 阅读 · 0 评论 -
计算机视觉基础系列(python与opencv的操作与运用/tensorflow的基础介绍)(十九)---Haar特征
1 引入机器学习 (Haar的引入)什么是特征?什么是haar特征?特征是:某个区域的像素点经过某种四则运算得到的结果,这个结果可以是一个向量或者其他的各种元素。(具体值,向量,多维的值,矩阵)本质Haar特征:具有特征的本质,但是又是一种特殊的特征描述,如下:有三个大类,基础类型,核心类型,all类型。这十四个类型特征,这里的特征描述是:特征的公式推导公式...原创 2019-06-27 09:48:13 · 460 阅读 · 0 评论 -
计算机视觉基础系列(python与opencv的操作与运用/tensorflow的基础介绍)(二十)---adaboost分类器
adaboost分类器Haar特征一般与adaboost分类器在一起运用,在人脸识别上运用较为成熟。adaboost分类的特点是:前一个分类器分出来的样本,在下一个分类器中会得到加强,加强后的样本继续做分类训练作为下一个基本的分类器。例如:三个苹果和一个香蕉,想要通过分类器讲苹果和香蕉区分出来,第一次经过分类器的时候,三个苹果的值为0.1,香蕉为0.5,经过第二个分类器的时候0.5的...原创 2019-06-27 10:38:24 · 698 阅读 · 0 评论 -
计算机视觉基础系列(python与opencv的操作与运用/tensorflow的基础介绍)(二十一)---Haar+adaboost分类器实现人脸识别
Haar+adaboost分类器实现人脸识别:其中运用了很多opencv自带的包,然后这里的代码里面都有很详细的注释,可以看一下,最后的效果不是很好,之后会慢慢改进,也运用了opencv里面自带的两个xml文件,一个是检测人脸的xml文件,另外一个是检测眼睛的xml文件,都可以在opencv官网下载的opencv开源包中找到,这里,我上传到csdn上,附上链接可以下载:点击此处跳转,可以下载一...原创 2019-06-27 14:14:13 · 689 阅读 · 0 评论 -
计算机视觉基础系列(python与opencv的操作与运用/tensorflow的基础介绍)(二十二)---SVM支持向量机
SVM的本质是寻求一个最优的超平面进行分类,比较简单的分类就是一个直线,很简单,若是多维空间的话就是超平面了,运用的核是线性核。样本准备一般是至少有正样本和负样本两种情况,还要label标签。运用机器学习模块进行创建训练,最后调用预测模块进行预测。下面我们运用学生的身高核体重进行SVM的分类预测。其中0代表女生,1代表男生。# SVM的本质:寻求一个最优的超平面进行分类# SVM核:线...原创 2019-07-03 10:18:34 · 268 阅读 · 0 评论 -
计算机视觉基础系列(python与opencv的操作与运用/tensorflow的基础介绍)(二十三)---Hog特征
特征?特征是某个像素经过某种运算得到的结果Hog特征:1.模块的划分 2.根据Hog特征计算梯度和方向(模板特征) 3.bin投影 4.每个模块的Hog特征1.模块的划分这里有四个需要知道的知识点:image:图像模块;windows窗体(可以看作和图像模块大小一样,实际上是要小一些的);block模块,cell模块(下面的蓝色(image,windows窗体),...原创 2019-07-03 17:15:30 · 631 阅读 · 0 评论 -
计算机视觉基础系列(python与opencv的操作与运用/tensorflow的基础介绍)(二十四)---Hog+SVM的识别
训练数据的时候,首先需要做下面几步:1.准备训练样本;2.对样本进行Hog+Svm的训练;3.运用test图片进行预测一、准备样本样本分为正样本和负样本,样本的准备可以运用视频的分帧截取图片存储。这里pos文件夹下包含正样本,包含所检测的目标;neg不包含检测的目标为负样本。样本的准备的时候,图片的尺寸需要注意,这里的尺寸是64x128。样本的获取的手段:1.来源于网络;2.自己收...原创 2019-07-17 10:02:04 · 562 阅读 · 0 评论 -
计算机视觉基础系列(python与opencv的操作与运用/tensorflow的基础介绍)(二十六)---手写数字识别之CNN(1)
在这里,首先我们需要知道池化层的作用,这里我们先介绍一下,平均池化(mean-pooling)和最大池化(max_pool)的含义和作用。这里的作用是:最直接的目的,就是降低了下一层待处理的数据量。比如说,当卷积层的输出大小是32×32时,如果池化层过滤器的大小为2×2时,那么经过池化层处理后,输出数据的大小为16×16,也就是说现有的数据量一下子减少到池化前的1/4。当池化层最直接的目的达到...转载 2019-07-29 10:46:12 · 278 阅读 · 0 评论 -
计算机视觉基础系列(python与opencv的操作与运用/tensorflow的基础介绍)(二十六)---手写数字识别之CNN(2)
首先我们需要知道池化层的作用,上一篇博客有说明,可以点击这里查看。import tensorflow as tfimport numpy as npimport randomfrom tensorflow.examples.tutorials.mnist import input_data # 将input_data用来读取图片# 1.数据装载minst = input_...原创 2019-07-30 14:26:52 · 257 阅读 · 0 评论 -
计算机视觉基础系列(python与opencv的操作与运用/tensorflow的基础介绍)(二十五)---手写数字识别之KNN
手写数字识别有两个经典案例,首先是KNN最近领域法和CNN卷积神经网络来做识别。我们从下面几个步骤来准备,1.网络的搭建;2.每一层的输入输出的说明。在这个之前的前提是样本的准备:minst网上很多,直接百度就可以搜到下载,这里附上下载地址:http://yann.lecun.com/exdb/mnist/这里有四个文件夹,下载完放在项目文件夹下解压即可。KNN的核心原理是...原创 2019-07-25 16:21:45 · 259 阅读 · 0 评论 -
计算机视觉基础系列(python与opencv的操作与运用/tensorflow的基础介绍)(二十七)--- 完结篇-人脸识别完整流程
首先这个案例很简单,属于浅层次的神经网络,属于一个综合性案例。分别需要以下几个步骤:1.样本收集;2.图像预处理;3.tensorflow神经网络这里对应的就是以下几个知识点:1.python图片的爬虫;2.opencv预处理;3.tensorflow卷积神经网络一、样本收集简单的爬虫使用;视频截取图片,ffmpeg命令行的使用。1.理解爬虫原理,2.实现图片的爬虫:1...原创 2019-07-31 10:11:34 · 1721 阅读 · 0 评论 -
计算机视觉基础系列(python与opencv的操作与运用/tensorflow的基础介绍)(十七)---直方图处理源码
1 灰度直方图的源码灰度直方图的本质:统计每个像素灰度出现的概率,横坐标0-255,纵坐标是出现的概率值为0-1。代码如下:import cv2import numpy as npimport matplotlib.pyplot as pltimg = cv2.imread('1.jpg', 1)cv2.imshow('src', img)imgInfo = img.sha...原创 2019-06-25 14:44:45 · 258 阅读 · 0 评论 -
随便记点opencv-python视频和图像之间的转换
记:图像的帧数达到15帧则会没有视觉差形成视频了。原创 2019-06-25 10:52:47 · 148 阅读 · 0 评论 -
计算机视觉基础系列(python与opencv的操作与运用/tensorflow的基础介绍)(十四)---浮雕效果和颜色映射
1 浮雕效果浮雕效果和边缘效果一样,也是需要求梯度的过程计算公式:newP = gray0 - gray1 + 150,即,灰度图中,相邻的两个像素值之差加上150即为新的像素值代码实现如下:import cv2import numpy as npimport mathimg = cv2.imread('1.jpg', 1)info = img.shapecv2.ims...原创 2019-06-25 10:50:00 · 241 阅读 · 0 评论 -
windows下简单搭建Tensorflow,keras(GPU)环境
在本文的tensorflow的环境搭建中,所需要提前说明的是,我的安装配置的tensorflow-gpu的版本是1.10.0,且相应的cuda的版本是,提前说明的原因是tensorflow-gpu的安装版本和cuda以及cudnn的版本必须对应且正确。以下则是tensorflow-gpu不同版本的对应的cuda9.0和对应的cudnn7.3的说明图,在这里只提到了GPU版本的配置,相关的CP...原创 2019-04-22 11:12:20 · 1298 阅读 · 0 评论 -
计算机视觉基础系列(python与opencv的操作与运用/tensorflow的基础介绍)(七)---matplotlib画图工具
import numpy as npimport matplotlib.pyplot as pltx = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 0])y = np.array([1, 3, 4, 6, 7, 2, 13, 24, 6, 19])plt.plot(x, y, 'r') # 折线图,第一个参数是x坐标轴,第二...原创 2019-06-12 15:22:43 · 247 阅读 · 0 评论 -
计算机视觉基础系列(python与opencv的操作与运用/tensorflow的基础介绍)(八)---小例子(神经网络逼近股票收盘价格)
这里我们运用简单的神经网络模拟一下股票的收盘价格,是一个学习的示例。首先要知道,股票曲线图的参数意义:这个曲线图主要记录股票的开盘价格和收盘价格,如果开盘价格低于收盘价格,那么证明这个股票在增长,每天的规律如此,所以,在下面,首先定义股票价格的坐标图如下:import tensorflow as tfimport numpy as npimport matplotlib.py...原创 2019-06-12 17:06:50 · 399 阅读 · 0 评论 -
计算机视觉基础系列(python与opencv的操作与运用/tensorflow的基础介绍)(九)---图片的剪切和移位
图片的剪切:import cv2img = cv2.imread('1.jpg', 1)info = img.shapedst = img[100: 200, 100: 300] # 分别是高和宽cv2.imshow('img', img)cv2.imshow('dst', dst)cv2.waitKey(0)代码很简单,就不做详细记录了,最终的显示是:...原创 2019-06-13 10:45:11 · 246 阅读 · 0 评论 -
计算机视觉基础系列(python与opencv的操作与运用/tensorflow的基础介绍)(十六)---图片的镜像
镜像操作,可以看作是图片的翻转操作,其原理是:实现的步骤是(1.创建一个足够大的“画板”,2将一副图像分别从前向后、从后向前绘制,3绘制中心分割线)新建一个Y轴的坐标,整个Y的高度是图片的高度的两倍。代码为:import cv2import numpy as npimg = cv2.imread('1.jpg', 1)info = img.shapecv2.imshow('src...原创 2019-06-13 11:02:13 · 317 阅读 · 0 评论 -
计算机视觉基础系列(python与opencv的操作与运用/tensorflow的基础介绍)(十)---图片的仿射变换和旋转
一,图片的仿射变换图片的仿射变换,需要根据图片的左上角,右下角及右上角来进行变换。解析来就是代码部分:import cv2import numpy as npimg = cv2.imread('1.jpg', 1)info = img.shapecv2.imshow('src', img)height = info[0]width = info[1]# 寻找图片的左上角...原创 2019-06-14 09:59:20 · 2501 阅读 · 0 评论 -
计算机视觉基础系列(python与opencv的操作与运用/tensorflow的基础介绍)(十一)---图片的灰度处理
一、图片的灰度化处理图片的灰度化的原理:这个灰度化,可以通过调用API进行灰度化处理,也可以通过图片的像素操作,对图片进行灰度化处理。方法一:用imread读取的时候,设置后面的参数为0。eg:img=imread('1.jpg',0),0代表是灰度图片,且灰度图片的深度信息为1,而彩色图片为3,这里的0->1则代表读取的是彩色图片。方法二:用cvtColor进行灰度转...原创 2019-06-14 10:23:30 · 494 阅读 · 0 评论 -
计算机视觉基础系列(python与opencv的操作与运用/tensorflow的基础介绍)(十二)---图片的颜色反转和马赛克效果
一、图片的颜色反转图片的颜色反转分为灰度图像的颜色反转和彩色图像的颜色反转:灰度图像的颜色反转,比较简单一点,因为它的颜色空间只有一层,只需要用255-mat[i,j](灰度图该点的像素值)存储到新的矩阵中即可。彩色图像的颜色反转,则需要知道的是彩色图像是有三个颜色空间的,也就是说它的深度为3,则需要将每个像素点对应的RGB的值与255相减即可,接下来是代码截图:灰度图的颜色反转:...原创 2019-06-14 11:25:48 · 425 阅读 · 0 评论 -
计算机视觉基础系列(python与opencv的操作与运用)(二)--图片压缩
本次所写的东西很简单,也许你需要用的时候还感觉比较有用,若是没有太大用处的时候则的确没有太大作用,这里将它作为储备知识记下来。图片太大,有时太占空间,则这里就需要压缩图片的体积进行存储,这里压缩图片存储的方式主要说一下常见的两种压缩方式和它们之间的区别。平时存储的图片文件一般为png或者是jpg文件,在这里有以下代码辅助说明import cv2img = cv2.imread('1...原创 2019-06-11 16:29:47 · 387 阅读 · 0 评论 -
计算机视觉基础系列(python与opencv的操作与运用)(三)--像素操作
每个图片可以看作很多个有颜色的小方块组合而成的,而每一个像素点的小方块的颜色,可以看作是三个颜色RGB进行合成的,颜色深度又是指的是8bit,即0-255,图片的宽高又是指的是图片在横轴和纵轴分别有多少个像素,图片大小又是从何而来的呢:1.14M = 720(长)* 547(宽)*3*8bit/8 (B) = 1.14M而在png图片中可能还存在着第四个通道,即为图片的颜色透明度alph...原创 2019-06-11 16:52:25 · 260 阅读 · 0 评论 -
随便记点opencv-python处理的图片
原创 2019-06-25 09:43:51 · 164 阅读 · 0 评论 -
计算机视觉基础系列(python与opencv的操作与运用/tensorflow的基础介绍)(十五)---直方图
1 直方图的引入opencv在图像处理方面的基础应用,彩色图像的相关知识和技术以及直方图的均衡化和规定化的原理是必须提前掌握。直方图的概念,横坐标表示像素值0-255的值,纵坐标表示像素值在整个图像中的概率是多少,值在0-1之间。直方图均衡化:一张图的直方图没有均匀分布,可以使用均衡化方法,尽可能的离散化,则称为直方图的均衡化下面是直方图的代码:import cv2impo...原创 2019-06-25 10:42:44 · 235 阅读 · 0 评论 -
计算机视觉基础系列(python与opencv的操作与运用/tensorflow的基础介绍)(二十八)--- 一个小实验题目
题目:随机产生32组生产出的零件的体积和重量,训练3000轮,每500轮输出一次损失函数。下面我们通过源代码进一步理解神经网络的实现过程:1.导入模块,生成模拟数据集2.定义神经网络的输入、参数和输出,定义前向传播过程3.定义损失函数及方反向传播方法4.生成会话,训练STEPS轮代码如下:import tensorflow as tfimport osimport n...原创 2019-08-02 10:20:46 · 304 阅读 · 0 评论