- 博客(40)
- 收藏
- 关注
原创 C++——存储数据文件为TXT/CSV格式
为存储测试数据,特此记录1.存储为TXT文件#include <io.h>#include <fstream> #include<iostream>#include<stdio.h> using namespace std;int main(){ int a[2][3] = { 1,2,3,4,5,6 };...
2020-05-05 01:35:32 3063
原创 C++——读取指定文件夹下文件
为实现批量读图测试,特此记录。1.获取指定目录下特定文件格式void getAllFiles(string path,vector<string> &files, string fileType);如,获取“jpg”文件getAllFiles("C:\\Users\\Desktop\\111\\1", temp ,".jpg");2.获取指定目录下所有文...
2020-05-05 00:39:50 2774
原创 MATLAB——Harris角点检测
为完成对棋盘标板的角点检测,特此记录。角点:最直接的定义为在水平、垂直两个方向上变化均较大的点最常用的角点检测算法为Harris角点检测方法,原理如下:计算图像I(x,y)在X和Y两个方向的梯度Ix、Iy 计算图像两个方向梯度的乘积 使用高斯函数对Ix^2、Iy^2和Ixy进行高斯加权(取σ=1),生成矩阵M的元素A、B和C 计算每个像素的Harris响应值R,并对小于某一阈值t...
2018-08-03 21:17:53 10681 1
原创 C++——bmp二值图像的击中击不中变换
本文在前文基础上完成以白色为前景的二值图像的击中击不中变换:1、击中击不中变换 击中击不中变换是形态学形状检测的基本工具,是用来查找像素局部模式的形态学运算符。‘局部’是指‘结构元素’的大小。 两个不相交集合B={B1,B2},称B为复合结构元素。则击中击不中变换为: ...
2018-05-16 21:36:55 725
原创 C++——bmp二值图像的腐蚀、膨胀、开运算、闭运算
本文实现二值bmp图像的腐蚀、膨胀及开运算、闭运算操作。本文使用白色为前景、黑色为背景的二值图进行操作:1、腐蚀腐蚀操作是结构原中心在被腐蚀图像中平移填充的过程。图像A被结构元B腐蚀,用集合论来表示如下式: 其中x是平移量,上式表示腐蚀结果集合中的元素是结构元的中心平移x后仍然...
2018-05-16 15:41:04 4095
原创 C++——bmp图像的平滑、锐化(拉普拉斯+sobel+prewitt+Roberts Cross operator)
本文实现了RGB三通道图像及灰度图像的平滑、锐化处理。在开始之前,我们先对平滑及锐化的概念进行一个简单的了解:1、平滑 图像平滑是指受传感器和大气等因素的影响,遥感图像上会出现某些亮度变化过大的区域,或出现一些亮点(也称噪声)。这种为了抑制噪声,使图像亮度趋于平缓的处理方法就是图像平滑。图像平滑实际上是低通滤波,平滑过程会导致图像边缘模糊化。常用的平滑处理方法有三种:(1) Box模板...
2018-05-16 15:21:09 11235 14
原创 C++——bmp图像+中值滤波
1、中值滤波 中值滤波是对一个滑动窗口内的诸像素灰度值排序,用其中值代替窗口中心象素的原来灰度值,它是一种非线性的图像平滑法,它对脉冲干扰级椒盐噪声的抑制效果好,在抑制随机噪声的同时能有效保护边缘少受模糊。 二维中值滤波算法是:对于一幅图像的象素矩阵,取以目标象素为中心的一个子矩阵窗口,这个窗口可以是3*3 ,5*5 等根据需要选取,对窗口内的象素灰度排序,取中间一个值作为...
2018-05-14 13:45:15 3749 2
原创 C++——bmp图像灰度化+二值化
本文实现bmp图像的灰度化及二值化操作:1、灰度化2、二值化 图像的二值化处理就是将图像上的点的灰度置为0或255,也就是讲整个图像呈现出明显的黑白效果。即将256个亮度等级的灰度图像通过适当的阀值选取而获得仍然可以反映图像整体和局部特征的二值化图像。所有灰度大于或等于阀值的像素被判定为属于特定物体,其灰度值为255表示,否则这些像素点被排除在物体区域以外,灰度值为0,表示背景或者例外...
2018-05-11 21:18:56 9342 4
原创 C++——bmp图像缩放(插值)
本文要实现的功能是使用最近邻插值以及双线性插值完成bmp图像的缩放。1、最近邻插值 不需要计算,在待求象素的四邻象素中,将距离待求象素最近的邻象素灰度赋给待求象素: 设i+u, j+v(i, j为正整数, u, v为大于零小于1的小数,下同)为待求象素坐标,则待求象素灰度的值 f(i+u,...
2018-05-11 17:17:22 9485 5
原创 C++——bmp图像裁剪
在之前的博客中,我们已经实现了bmp图像的读取与保存,本文在之前的基础上对对人图像的数据区进行处理,达到截取图像部分区域的目的,以便以后的图像处理操作,代码如下:#include <string.h> #include <malloc.h> #include<cstdlib>#include<cstdio>#include<...
2018-05-10 16:04:04 5531 8
原创 caffe学习笔记——python+提取caffemodel中的参数及特征
在公式 y=f(wx+b)中,w和b就是我们需要训练的东西,w称为权值,在cnn中也可以叫做卷积核(filter),b为偏置项。f是激活函数,有sigmoid、tanh、relu等。x是输入的数据。数据训练完成后,保存的caffemodel里面,实际上就是各层的w和b值。在这里,我们仍用之前训练好的lenet_iter_9380.caffemodel进行试验,在Spyder编译器下...
2018-05-08 17:06:38 3641 3
原创 caffe学习笔记——用anaconda绘制loss及accuracy曲线
本文使用anaconda的Spyder编译器绘制loss及accuracy曲线。在该编译环境下,建一个.py文件,点击run运行,可通过变量窗口查看各变量的值以及在命令行窗口生成曲线:代码如下:# -*- coding: utf-8 -*-"""Created on Tue Jul 19 16:22:22 2016@author: root"""import numpy ...
2018-05-08 15:54:00 548
原创 caffe学习笔记——python+mnist手写数字识别
1、数据准备 之前的博客中已经对mnist数据集进行过介绍,这里我们直接将保存好的图片拿过来处理。数据分成了训练集(60000张共10类)和测试集(共10000张10类),将每个类别放在一个单独的文件夹里。并且将所有的图片,都生成了txt列表清单(train.txt和test.txt)。为节约时间,这里直接下载denny分享的数据集:http://pan.baidu.com/s/1pL...
2018-05-08 14:14:32 470
原创 caffe学习笔记——loss及accuracy曲线绘制
仍然运用anaconda中的Spyder编译器环境进行曲线的绘制:(1)加载必要的库: #加载必要的库import numpy as npimport matplotlib.pyplot as plt%matplotlib inlineimport sys,os,caffe#设置当前目录caffe_root = 'D:/caffe/caffe-master/caffe-master/'...
2018-05-08 12:54:29 480
原创 caffe学习笔记——模型各层数据及参数的可视化
在之前的博客中,我们用caffe对cifar10进行训练,得到了一个caffemodel,我们现在用caffe自带的cat.jpg进行测试,并进行可视化,同样在anaconda的Spyder编译器下实现:在Spyder的命令行窗口输入:#加载必要的库import numpy as npimport matplotlib.pyplot as plt%matplotlib inlineimpo...
2018-05-07 21:40:48 642
原创 caffe学习笔记——数据可视化
运用anaconda中的Spyder编译器,实现以下功能:(1)将caffe的根目录作为当前目录,然后加载caffe程序自带的小猫图片,并显示。在命令行窗口输入如下代码:import numpy as npimport matplotlib.pyplot as plt%matplotlib inlineimport caffecaffe_root='D:/caffe/caffe-maste...
2018-05-07 18:34:17 314
原创 caffe学习笔记——win7+caffe环境下运行cifar实例
在开始前,对cifar数据集进行一个简单的介绍:【cifar数据集介绍】 Cifar-10是由Hinton的两个大弟子Alex Krizhevsky、Ilya Sutskever收集的一个用于普适物体识别的数据集。Cifar是加拿大政府牵头投资的一个先进科学项目研究所。这个项目结集了不少计算机科学家、生物学家、电气工程师、神经科学家、物理学家、心理学家,加速推动了DL的进程。DL强调的...
2018-05-07 17:48:04 283
原创 caffe学习笔记——用训练好的caffemodel进行图像分类
caffe程序自带有一张小猫图片,存放路径为caffe根目录下的 examples/images/cat.jpg, 现在我们想用一个训练好的caffemodel来对这张图片进行分类。开发caffe的团队,利用imagenet图片和caffenet模型训练好了一个caffemodel, 供大家下载。要进行图片的分类,这个caffemodel是最好不过的了。不管是用c++来进行分类,还是用pytho...
2018-05-07 14:12:12 849
原创 《机器学习实战》——第十章 K-MEANS算法 学习总结
1、K-means聚类 聚类是一种无监督的学习,它将相似的对象归到同一簇中。聚类的方法几乎可以应用所有对象,簇内的对象越相似,聚类的效果就越好。K-means算法中的k表示的是聚类为k个簇,means代表取每一个聚类中数据值的均值作为该簇的中心,或者称为质心,即用每一个的类的质心对该簇进行描述。 聚类和分类最大的不同在于,分类的目标是事先已知的,而聚类则不一样,聚类事先不...
2018-05-04 21:34:06 1445
原创 caffe学习笔记——用lenet网络及mnist数据集测试caffe
本文通过一个一个最简单的网络结构lenet来对刚才安装的caffe进行测试:1、将下载的mnist数据集解压到D:\caffe\caffe-master\caffe-master\data\mnist:2、转换数据格式 转换成caffe需要的数据格式,此处转换为 LMDB(cifar是转换成 LEVELDB,可对比参考如何实现的),转换格式需要用到caffe里的项目convert_mn...
2018-05-04 20:02:18 414
原创 caffe学习笔记——Windows7 64位+caffe+anaconda2.7+python接口配置
电脑上原本安装了python2.4,这次为了配接口重新下载了anaconda2.7(官网:https://www.continuum.io/downloads),1、开始之前先安装一下anaconda2.7,需要注意的是安装过程中开始可以一直next,到这一步选择“just me”:然后在选择这两个选项时,把两个都选上:第一个是加入环境变量,第二个是默认使用 Python 2.7安装完成以后,wi...
2018-05-04 15:39:08 401
原创 caffe学习笔记——Windows7 64位+caffe+MATLAB2014 接口配置
上一篇已经完成了caffe的安装,接下来进行MATLAB接口的配置:1、修改CommonSettings.props中与MATLAB有关的配置配置:此处MATLAB的路径是其安装的大路径:由于MATLAB版本的问题,mxGPUArray.h文件的位置发生了变化,因此要加上其正确的路径:2、编译caffe文件夹里面的Windows里面的caffe.sln工程里面的matcaffe一项,选择relea...
2018-05-04 15:18:39 616
原创 caffe学习笔记——windows7 64位 +无GPU+VS2013+caffe的安装
参考博客:https://blog.csdn.net/zb1165048017/article/details/51355143电脑上已经安装了VS2013,首先从官网上下载微软提供的Windows工具包(caffe-master)备用。1、复制Windows下CommonSettings.props.example,后缀改为CommonSettings.props2、修改复制过来的CommonS...
2018-05-04 14:58:25 293
原创 C++ —— 读取MNIST数据集数据并转存为图像
在上一个博客中,我们已经对MNIST数据集的数据格式有了一定的了解,这里我们要完成的工作是将读到的数据转成图片,存入文件夹中,以便日后使用。在开始之前,我们先对该数据库的存储格式进行一个具体的介绍:MNIST(Mixed National Institute of Standards and Technology database)是一个计算机视觉数据集,它包含70000张手写数字的...
2018-04-29 13:07:05 5286 9
原创 opencv学习笔记——用C++读取MNIST手写数据库的数据,并用opencv自带的SVM进行识别
本文所用的MNIST 数据集来自美国国家标准与技术研究所, National Institute of Standards and Technology (NIST). 训练集 (training set) 由来自 250 个不同人手写的数字构成, 其中 50% 是高中学生, 50% 来自人口普查局 (the Census Bureau) 的工作人员。 测试集(test set) ...
2018-04-28 22:06:18 4075
原创 《机器学习实战》 第九章 树回归
线性回归模型需要拟合所有样本(除局部加权线性回归外),当数据拥有众多特征且特征间关系十分复杂时,构建全局模型就显得太难了。一种可行的方法是将数据集切分成很多份易建模的数据,然后利用线性回归技术建模。如果首次切分后仍难以拟合线性模型就继续切分,在这种切分模式下,树结构和回归法相当有用。 CART(Classification And Regression Trees,分类回归...
2018-04-24 15:49:03 700
原创 《机器学习实战》 第八章 预测数值型数据:回归
与分类一样,回归也是预测目标值的过程。回归与分类的不同点在于,前者预测连续性变量,而后者预测离散型变量。1、用线性回归找到最佳拟合曲线 回归的目的是预测数值型的目标值。针对一个回归方程,求取回归系数的过程就是回归。一旦有了回归系数,再给定输人,做预测就非常容易了。具体的做法是用回归系数乘以输人值,再将结果全部加在一起,就得到了预测值。 假定输入数据存放在矩阵X...
2018-04-22 21:25:32 444
原创 opencv学习笔记——C++读入bmp图像数据后,转为mat型矩阵,并显示输出
在开始之前,我们先介绍一下mat类的用法:1、mat类存储图像Mat类是OpenCV里使用广泛的一个类,其中最重要的一个作用就是作为存储图像的数据结构。那么Mat类如何存储的图像呢? 我们都知道图像分为彩色图像和灰度图像,这里我有一个误区,一直认为彩色图像是一种三维矩阵,就是立方体的那种结构,一个图像分为三层。但是这种理解是错误的,其实在存储的图像不管是彩色的还是灰度图像,都是二维的矩...
2018-04-20 20:55:00 19210 5
原创 C++—— 读入一张bmp图片,提取其图像数据,存入矩阵/txt文件
本文章完成的是读入bmp图片、将数据存入矩阵/TXT文件、保存图片的功能。在开始之前,我们需要了解bmp位图的存储方式:BMP文件的数据按照从文件头开始的先后顺序分为四个部分:(1)bmp文件头(bmp file header):提供文件的格式、大小等信息(2)位图信息头(bitmap information):提供图像数据的尺寸、位平面数、压缩方式、颜色索引等信息(3)调色板(color pal...
2018-04-19 16:22:16 16313 13
原创 《机器学习实战》 第七章 adaboost元算法 学习总结
boosting算法和bagging算法都是把一些弱分类器组合起来来进行分类的方法,统称为集成方法(ensemble method)或元算法。boosting是集中关注分类器错分的那些数据来获得新的分类器,分类的结果是基于所有分类器的加权求和结果的。在bagging中分类器权重相等,而boosting中分类器的权值并不相等,每个权重代表的是其对应分类器在上一轮迭代中的成功度。分类器的...
2018-04-16 16:04:46 365
原创 C语言 矩阵乘法
矩阵运算时,逐行逐列相乘再相加,因此对于二维矩阵,需要两个for循环来求解,第一个for循环指定行,第二个for循环指定列。除此之外,定义一个变量k来标识A的行中个元素以及标识B的列中个元素。通过k的增加来遍历A的行中的元素和遍历B的列中的元素。运用C语言进行二维矩阵乘法运算代码如下:#include<stdio.h>#define M 3#define N 4#defi...
2018-04-16 12:57:41 1659
原创 opencv学习笔记——自己训练人脸识别分类器
在使用opencv自带的分类器haarcascade_frontalface_alt.xml进行人脸识别的基础认识后,决定自己训练一个分类器看一下效果。该过程大致可分为三个阶段:样本采集、分类器训练和运用训练好的分类器进行人脸检测。1、样本的采集 在训练前,我们需要进行正样本及负样本的采集。 正样本采用的是ORL人脸数据库中的部分图像,本次共选用63张图像,初...
2018-04-15 15:50:03 18042 12
原创 《机器学习实战》 第六章 SVM 学习总结
SVM:支持向量机,是一种二分类的分类器,通过求解二次优化问题来解决最大化分类间隔。既支持线性分类,又支持非线性分类。线性分类不需要样本数据,非线性分类需要部分样本数据(支持向量)。 分隔超平面:将数据集分隔开来的直线。支持向量:离分隔超平面最近的那些点。SVM的核心思想:与逻辑回归类似,使用一组训练集求出一组权...
2018-04-12 14:32:47 384
原创 opencv学习笔记——从文件中批量读图,并进行人脸识别
在现有的人脸识别程序上进行细微修改,因为电脑没有摄像头,因此将原先的从摄像头读入图片改为从文件批量读入,主程序修改如下:#include "cvlib.hpp"#include "FaceDetect.h"#include <opencv2/highgui/highgui.hpp>#include <opencv2/imgproc/imgproc.hpp>#include ...
2018-04-11 20:06:45 697
原创 《机器学习实战》 第五章 逻辑回归 学习总结
逻辑回归的目的:寻找一个非线性函数sigmoid的最佳拟合参数。求解时使用的是最优化算法,最常用的是梯度上升法。 利用逻辑回归进行分类的中心思想是:根据现有数据对分类边界线建立回归公式,以此进行分类。 对于现有的一些数据点,我们用一条直线对这些点进行拟合(这条直线称为最佳拟合直线),这个拟合的过程就叫做回归。我们根据拟合的直线方程,进行分类。在《机器学习实战》中,使用sigmo...
2018-04-10 21:00:50 335
原创 opencv 学习笔记——读入一张图片,并将其转为灰度图
读入一张RGB彩色图片,并将其转为灰度图源码如下:#include <opencv2\highgui\highgui.hpp>#include <opencv2/opencv.hpp>using namespace cv;using namespace std;int main(){ Mat srcImage = imread("E:\\matlab_file\\defo...
2018-04-10 17:11:03 8063 1
原创 opencv 学习笔记——环境变量设置
在VS2013环境下,配置opencv2.4.111、配置系统环境变量计算机——>右键——>属性——>高级系统设置——>高级——>环境变量——>系统变量——>path,在path里添加D:\ProgramFiles\opencv\build\x64\vc12\bin;D:\Program Files\opencv\build\x86\vc12\bin。(1...
2018-04-10 16:48:47 4928 1
原创 《机器学习实战》 第四章 朴素贝叶斯 学习总结
朴素贝叶斯:使用条件概率进行分类分类准则如下: 如果 P(c1|x, y) > P(c2|x, y), 那么属于类别 c1; 如果 P(c2|x, y) > P(c1|x, y), 那么属于类别 c2.两个假设:假设特征之间相互独立,且每个特征同等重要。应用:文档的自动分类 首先遍历并记录下文档中出现的词,并将每个词的出现或不出现作为一个特征;然后计算不同的独立...
2018-04-09 21:51:52 513
原创 《机器学习实战》第三章 决策树 学习总结
决策树与KNN均属于分类算法,它将欲处理的数据看做树的根,然后选取数据的特征作为分类的节点,每次选取一个节点将数据分成不同的子集,每次划分出来的子集可看做是树的分支,一次划分过程即为一次决策过程,直至最后无法继续划分,则停止进程,最终形成根在上部的一颗树型结构。1、构造决策树 在构造决策树前,先选取特征作为划分数据集的依据。为得到在划分数据时起决定作用的特征,要对每个特征...
2018-04-08 10:02:30 348
原创 《机器学习实战》 第二章 k-近邻算法概述 学习过程中遇到的问题总结
在学习《机器学习实战》第二章时,遇到了一些问题,总结如下:1、书中所用python版本为2.6,本人操作时使用的是python3.6,有一些函数如reload、input等用法都有变化: raw_input-------->input reload()------------>import importlib importlib.reload() iteritem...
2018-04-02 18:28:37 460
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人