OPenCV
文章平均质量分 86
Keras深度学习
纯属个人记点笔记,方便需要用的时候查看。
展开
-
C++版OpenCV使用神经网络ANN进行mnist手写数字识别
说起神经网络,很多人以为只有Keras或者tensorflow才支持,其实OpenCV也支持神经网络的,下面就使用OpenCV的神经网络进行手写数字识别,训练10次的准确率就高达96%。环境准备:vs2015OpenCV4.5.0以下为ANN神经网络的训练代码:#include<iostream>#include<opencv.hpp>#include <string>#include <fstream>using namespace std原创 2021-01-04 17:40:43 · 82432 阅读 · 10 评论 -
C++版OpenCV使用支持向量机svm进行mnist手写数字识别
支持向量机svm也是一种机器学习算法,采用空间超平面进行数据分割,在这篇博客中我们将使用svm进行手写数字的识别,使用该算法,识别率可以达到100%。环境准备:vs2015OpenCV4.5.0下面的代码为svm模型训练代码:#include<iostream>#include<opencv.hpp>#include <string>#include <fstream>using namespace std;using namespace原创 2020-12-28 17:20:05 · 40204 阅读 · 11 评论 -
C++版本OpenCV实现对mnist手写数据集的解析
在机器学习中,mnist数据集是一个使用很广泛的数据集,一般教程中都是python对mnist数据集的解析,在本文中将采用C++语言进行手写数据集的数据提取。环境准备:vs2015OpenCV4.5.0首先在mnist官网上下载mnist数据集的压缩包。下载完成后将压缩包解压得到idx3-ubyte格式文件,如下图所示:下面代码为C++版解析代码:#include<iostream>#include<opencv.hpp>#include <string&原创 2020-12-28 14:29:27 · 18423 阅读 · 0 评论 -
opencv(python)使用ann神经网络识别手写数字
opencv中也提供了一种类似于Keras的神经网络,即为ann,这种神经网络的使用方法与Keras的很接近。关于mnist数据的解析,读者可以自己从网上下载相应压缩文件,用python自己编写解析代码,由于这里主要研究knn算法,为了图简单,直接使用Keras的mnist手写数字解析模块。本次代码运行环境为:python 3.6.8opencv-python 4.4.0.46opencv-contrib-python 4.4.0.46下面的代码为使用ann进行模型的训练:from keras原创 2020-12-25 17:52:17 · 19680 阅读 · 5 评论 -
opencv(python)使用svm算法识别手写数字
svm算法是一种使用超平面将数据进行分类的算法。关于mnist数据的解析,读者可以自己从网上下载相应压缩文件,用python自己编写解析代码,由于这里主要研究knn算法,为了图简单,直接使用Keras的mnist手写数字解析模块。本次代码运行环境为:python 3.6.8opencv-python 4.4.0.46opencv-contrib-python 4.4.0.46以下代码为使用svm算法进行训练模型:import cv2import numpy as npfrom keras.原创 2020-12-25 17:37:07 · 21287 阅读 · 3 评论 -
opencv(python)使用knn最近邻算法识别手写数字
knn最近邻算法是一种分类以及回归算法,算法原理是一个样本与样本集中k个样本最相似,如果这k个样本的大多数也属于同一个类别,则该样本也属于这一类。关于knn算法的详细原理读者可以在网上找一些资料了解下,这里主要介绍使用knn进行mnist手写数字的识别。关于mnist数据的解析,读者可以自己从网上下载相应压缩文件,用python自己编写解析代码,由于这里主要研究knn算法,为了图简单,直接使用Keras的mnist手写数字解析模块。本次代码运行环境为:python 3.6.8opencv-pytho原创 2020-12-25 14:20:34 · 18744 阅读 · 7 评论 -
详解opencv的HOG描述子维度数目的计算原理
opencv的HOG描述子与sift、surf、orb描述子一样,都是属于同一类型的描述符,这种描述符可以作为SVM、ANN的模型输入数据。如何更科学的使用HOG描述符,主要取决于HOG的参数是如何转为维度数目的。下面是python代码对一个图像为40*40大小生成HOG描述子的过程。import cv2import numpy as npgray=np.ones(shape=(40,40),dtype=np.uint8)'''比如上面这副图像的大小为40*40定义hog描述子的第一个值原创 2020-12-24 11:18:48 · 17592 阅读 · 3 评论 -
win10使用vs2019从源码编译OpenCV4.5+cuda10.2+cudnn8.0的C++环境和Python环境
1 环境准备1 vs20192 anaconda+Python3.6+numpy3 cuda和cudnn环境4 cmake5 OpenCV4.5.0以及OpenCV-contrib4.5.0压缩包本人电脑里的cuda和cudnn环境如下:当然Python环境可以不用anaconda,自己去下载Python3.6安装,然后装上numpy模块,因为Python版本的OpenCV依赖于numpy。如果用户仅仅需要编译C++版本的OpenCV,可以去掉Python环境。2 cmake编译将下载的原创 2020-11-25 17:39:26 · 20877 阅读 · 11 评论 -
vs2019编译OpenCV4.5.0的contrib版本
在GitHub上下载OpenCV4.5.0和OpenCV-contrib4.5.0版本编译OpenCV的contrib步骤跟编译不带contrib版本的步骤大体一致,详见我的另外一篇博客,唯一不同的是在这个地方,在第一次configure完成后,在这个地方选择contrib的资源文件路径。OPENCV_EXTRA_MODULES_PATH目录里选择contrib的文件路径其它的步骤完全一样。...原创 2020-11-23 16:59:08 · 17702 阅读 · 0 评论 -
vs2019编译OpenCV4.5.0
从GitHub上下载OpenCV4.5.0的资源文件压缩包,解压完成后在目录中新建一个文件夹build_x64作为cmake编译的文件存放目录。打开cmake,进行如下的文件目录选择:然后第一次点击configure在这个界面里可以选择的库平台平台,这里我选择编译64位库选择好了后,点击finish,等待配置完成。第一次配置完成后,在中间的红色界面里可以选择需要哪些功能以及还可以删除掉默认的一些编译选项,我这里去掉build_java以及build_tests这两个,因为我不需要使用这原创 2020-11-23 16:48:08 · 17817 阅读 · 0 评论 -
基于C++版的OpenCV图像旋转无缺失算法实现
#include<opencv2/opencv.hpp>#include<iostream>using namespace std;using namespace cv;//旋转函数Mat RotateImg(Mat image, double angle);int main(){ Mat image(101, 201, CV_8UC3, Scalar(0,0,255)); Mat imgOut = RotateImg(image, 45); imshow(原创 2020-11-05 15:41:47 · 18926 阅读 · 0 评论 -
基于python的opencv图像旋转无缺失算法实现
import cv2import numpy as npfrom math import *img=np.ones(shape=(100,200,3),dtype=np.uint8)img[:,:,0]=255'''对图像进行旋转的函数'''def rotate(image,angle): height, width,channels=image.shape #变换后新图像的大小是原图像旋转后的轮廓外接矩形,注意这个外接矩形的长和高也是水平和竖直的 heightN原创 2020-11-05 15:37:39 · 17539 阅读 · 1 评论