- 博客(35)
- 资源 (3)
- 收藏
- 关注
原创 c++ 冒泡排序
#include <iostream>using namespace std;class maopao //类{private: int chang;//长 int *arr;//数组 int t;//交换数据会用到 void small_to_big(int *aa, int c);//从小到大排序 void big_to_small(int *aa, in...
2019-06-21 18:42:54
340
原创 c++ 选择排序
#include <iostream>using namespace std;class select{private: int *arr;//数组 int chang;//长度 int temp; void show(int *aa, int length);//显示得内部功能实现 void selectSort(int *aa, int length);//从...
2019-06-21 18:40:42
270
原创 迁移学习VGG_猫狗识别
使用了VGG19的模型迁移到猫狗识别中,并且在最后添加了两层FC全连接层用于分类。并且网络中添加了学习率衰减以及平均滑动模型其中train_image(2w5张图片)存放训练样本 ,test1(256张图片)存放测试样本train_image:test1:VGG模型:需要自己下载VGG迁移学习_猫狗识别.pyVGG_PAT需要修改成自己本地保...
2019-05-19 11:58:42
3868
23
原创 队列的链表存储——python
'''存在两个指针,类似于头指针和尾指针'''class Node(object): def __init__(self,item): self.item=item self.next=Noneclass LinkQueue(object): def __init__(self): n=Node(None) s...
2019-05-15 11:41:00
305
原创 栈的顺序存储——python
class SequenceStack(object): def __init__(self,size=10): self.max=size#最大容量 self.top=-1#top指针 self.s=[None]*self.max# 提前构建一个固定大小的栈,初始化全为None '''判断栈是否为空''' def is_...
2019-05-14 11:16:56
485
原创 单循环链表——python
class Node(object): "单循环链表节点" def __init__(self,item): self.item=item self.next=Noneclass singlecirclelist(object): """单循环链表""" def __init__(self): self._hea...
2019-05-12 12:40:51
471
原创 双向链表——python
class Node(object): "双向链表节点" def __init__(self,item): self.item=item self.next=None #后 self.prev=None #前class doublelist(object): "双向链表" def __init__(self)...
2019-05-12 11:21:12
178
原创 单链表——python
class Node(object): def __init__(self,item): self.item=item self.next=Noneclass singlelist(object): def __init__(self): self._head=None def is_empty(self): return self._head is None...
2019-05-10 23:25:15
148
原创 顺序表——python
class SequenceList(object): '''顺序表(数组)''' def __init__(self,size=6): # 初始化顺序表 self.max=size#最大容量,默认为6 self.num=0#当前储存个数 # 提前构建一个固定大小的列表,初始化全为None self....
2019-05-10 11:28:49
360
原创 dijkstra——图像最短距离(2)
之前文章能够求出dijkstra最短距离,但是速度太慢,原因之一是算法把整个二维数组的点到起始点的最短距离都求出来了,但其实没有必要,我们只需要起始点到结束点的最短路径即可。优化思路:dijkstra算法执行时,若当前点的坐标等于结束点坐标时就停止算法,这样可以避免寻找其他无用点而浪费时间程序59,60,61行代码可自行修改#启发函数中的归一化需要根据具体情况修改import nu...
2019-04-23 17:49:48
702
1
原创 dijkstra——图像最短路径(1)
dijkstra属于广度优先搜素的一种。本python代码是在8领域内计算,两个像素点之间的差值的绝对值作为该边的权重,试图找到某两个像素点最短路径所要经过的坐标点。47,48,49行代码可自行修改(对于图像来说:最短路径大概就是图像边缘)import numpy as npimport randomdef shuzu(w,h): nnum = [[random.rand...
2019-04-23 11:54:10
1040
1
原创 VGG网络模型
import tensorflow as tf#卷积函数def conv2d(x, W, b, strides=1): x = tf.nn.conv2d(x, W, strides=[1, strides, strides, 1], padding='SAME') x = tf.nn.bias_add(x, b) return tf.nn.relu(x)#池化函数...
2019-04-09 12:28:57
703
原创 基于视频流的MTCNN人脸检测
基于摄像头的人脸检测按 q 退出程序predict.pyimport sysimport osimport argparseimport tensorflow as tfimport numpy as npimport mtcnn_detect_face import cv2def main(): sess = tf.Session()#开启会议 ...
2019-04-08 17:37:00
2309
3
原创 MTCNN人脸检测及人脸关键点提取(学习记录)
我看了很多关于MTCNN框架的文章,但基本上都是一概而过,本文章记录MTCNN每一步的流程及附上注释的代码。MTCNN框架主要由三大子网络组成,即P-Net,R-Net,O-Net。三大子网络的区别:P-Net最后没有全连接层,而是卷积层代替全连接层,类似于FCN(全连接神经网络),目的是最后一层的卷积层是由 带有人脸概率的小方格组成,而每一小方格都对应原始图像中的某一区域,属于像素级别...
2019-03-03 09:36:18
9874
10
原创 tensorflow-显示mnist图像并且加载模型识别单张图像(二)
通过上一遍文章,我们能够得到比较简单的mnist训练模型。在根目录的save文件夹下有四个文件,保存的是训练模型,文件具体内容自行查找资料,我们加载模型时,只需定义出save文件夹下的路径即可下面代码包含:一:从测试集中随机挑选出两张图像用于显示并且识别二:加载训练模型 import tensorflow as tf #加载mnist库,从在测试集中挑选要测试的图片f...
2019-01-13 11:47:53
1681
原创 tensorflow-mnist训练(一:只有全连接网络)
mnist数据集首先下载好,在根目录下建立一个文件夹(MNIST_data),把下载好的mnist数据集保存在MNIST_data中,注意下载的mnist不用解压,程序会自动解压下面代码包含:一:网络结构只有全连接,比较简单二:能得到测试集的精确度,大约为百分之91三:能够保存模型 import tensorflow as tf#加载数据集from tensorf...
2019-01-13 11:36:29
659
原创 opencv——基于SVM的数字识别(3)
前两篇文章写了基于两种特征提取的SVM数字识别https://blog.csdn.net/weixin_41721222/article/details/84953788https://blog.csdn.net/weixin_41721222/article/details/84978343这篇文章主要是关于模型评估,即识别数字的正确率 下面代码是opencv3 c++...
2018-12-13 13:29:02
3069
3
原创 opencv——基于SVM的数字识别(2)
上篇文章我们用的特征是训练样本的所有像素点值,虽然方便但不准确。这篇文章主要介绍用SVM+HOG特征对数字进行识别。详细请看上篇文章,它们主要区别在于训练样本HOG特征的提取,其他基本一样,所以我直接附上代码。下面代码是opencv3和C++可以根据自己需要修改训练样本类别,数目,尺寸。oss的训练样本路径,src的检测图片路径。#include <stdio.h&g...
2018-12-12 19:52:59
2645
原创 opencv——批量修改图片像素大小
#include "stdafx.h"#include<opencv2/opencv.hpp>#include<iostream>using namespace std;using namespace cv;Mat dealimage;int num = 0;ostringstream oss;//结合数字和字符串void xiugai(Mat de...
2018-12-11 14:38:41
2953
2
原创 opencv——基于KNN的数字识别
KNN即K个最近邻,网上有很多关于KNN的文章。我大概总结下核心:假设有A图片,让A与训练样本依次计算相似度(可用欧式距离),挑选出K个与A图片相似度最大的图片,这K个图片中,哪种类型最多那么定义A图片也属于该类型。首先,需要有数字的训练样本https://download.csdn.net/download/weixin_41721222/10784418 KNN的数字识...
2018-12-11 14:26:08
4322
3
原创 opencv——基于SVM的数字识别(1)
关于SVM的原理有很多优秀的视频和资料,这里我主要说下利用SVM对数字识别的具体应用首先,需要有数字的训练样本https://download.csdn.net/download/weixin_41721222/10784418把0-9文件夹放入模版匹配样本之中,自己可修改。 核心思路:1:获取一张训练图片后会将图片特征写入到容器中,紧接着会将标签写入另一个容器中,...
2018-12-11 14:01:36
7648
15
原创 opencv——GMM图像分割
GMM即高斯混合模型,GMM加上贝叶斯就能对图像进行分割。在说高斯混合模型之前,得先认识单高斯模型,即高斯分布(正态分布),由图可知,以某个点为例,它的高斯分布含义:离该点越近其权重越大影响越大,越远其权重越小影响越小,中心点的大小要受到周围点的影响。比如 5 _ 10 _ _ 6,以10为中心点的高斯分布,_代表距离,因为5离10更近,权值更大,设为0.8,则5变成5*0.8=4。因为6离...
2018-11-19 17:06:39
3507
原创 opencv——基于kmeans的图像分割
kmeans为无监督聚类最重要的算法,本文用kmeans算法对图像进行分割。算法原理参考:https://blog.csdn.net/u013719780/article/details/51755124https://blog.csdn.net/qq_36134318/article/details/80408658https://blog.csdn.net/xiligey1/art...
2018-11-19 17:06:05
1473
原创 SURF——FLANN快速最近邻匹配
#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>#include <opencv2/imgproc/imgproc.hpp>#include <iostream>#include<xfeatures2d/nonfree.hpp>#inc...
2018-11-06 15:51:35
2331
原创 SURF——平面识别对象
#include <iostream>#include <opencv2/opencv.hpp>#include"opencv2/xfeatures2d.hpp"using namespace cv;using namespace std;using namespace cv::xfeatures2d;int main(){ Mat a = imrea...
2018-11-06 15:48:12
1555
原创 SURF——特征点暴力匹配
#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>#include <opencv2/imgproc/imgproc.hpp>#include <iostream>#include<xfeatures2d/nonfree.hpp>usin...
2018-11-06 15:45:26
1923
原创 SURF——绘制特征点
#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>#include <opencv2/imgproc/imgproc.hpp>#include <iostream>#include<xfeatures2d/nonfree.hpp>usin...
2018-11-06 15:44:01
863
原创 稀疏光流跟踪
/ 光流对象的跟踪.cpp: 定义控制台应用程序的入口点。//分为稀疏光流 KLT 和稠密光流HF//本课程用KLT#include<opencv2/opencv.hpp>#include<iostream>using namespace cv;using namespace std;Mat frame, gray;Mat pre_frame, pr...
2018-11-06 15:41:45
989
原创 稠密光临
// 稠密光流.cpp: 定义控制台应用程序的入口点。//稠密光流不对特征点跟踪,而是每次扫描整幅图像,显示运动的像素点,所以稠密光流运算速度慢//#include<opencv2/opencv.hpp>#include<iostream>using namespace cv;using namespace std;static void drawOptic...
2018-11-06 15:39:44
194
原创 opencv视觉跟踪——消除背景建模
消除背景建模就是找出视频中移动的区域,把移动的区域设为白色对象方便观察,其他没有移动的区域设为黑色背景。消除背景建模是视频跟踪最基本的方法。可用基于机器学习的KNN算法或者图像分割MOG算法不论是KNN还是MOG,它们对于消除背景建模的思路是一样的以KNN为例:假设在视频的第10帧为开始,用KNN算法可以把第10帧图像中的所有像素点划分为K类。即每个像素点都有属于自己的类别。 ...
2018-11-06 15:38:24
1369
原创 opencv视觉跟踪——CAMshift(meanshift均值漂移)
关于CAMshift的资料很多,如下链接写的都很不错,我就说说自己对CAMshift的理解https://blog.csdn.net/li_dongxuan/article/details/70667170https://blog.csdn.net/leixiaohua1020/article/details/12236091总结:一:HSV对光照影响小,RGB空间对光照影响大。...
2018-10-15 10:10:50
488
原创 matlab图像处理--区域生长法
区域生长法:区域生长是按照事先定义的生长准则将一个像素或者子区域逐步聚合成一个完整独立的连通区域过程。对于图像感兴趣目标区域R,z为区域R上事先发现的种子点,按照规定的生长准则逐步将与种子点z一定邻域内符合相似性的像素合并成一个种子群以备下一阶段的生长,这样不断的进行循环生长直到满足生长停止条件为止,从而完成了对感兴趣区域由一个种子点生长为一个独立连通区域的过程(引用) 区域生长算法...
2018-05-10 16:48:50
19511
5
原创 matlab图像处理--预迭代阈值分割
预迭代阈值分割:图像分割关键在于找到最佳阈值,通过迭代方式逼近最佳阈值,是图像分割的有效办法。算法思路: 例如:1,99 取2,50,98都能分割1和99,但是50与1和99差别最大,为最佳阈值。可以看出两个数的中间值为最佳阈值。哪俩个部分呢? 例如:1,2,98,99 我们假设40作为阈值,得到1,2作为A部分,得到98,99作为B部分。A部分均值为1.5,B部分均值...
2018-05-06 11:11:50
8773
2
原创 matlab图像处理--Otsu阈值分割
Otsu算法:取一个最优阈值把原图像分为前景色(A部分)与背景色(B部分),两部分的类间方差越大,说明两部分差别越大,便能有效的分割图像。所以该算法最关键的是找到最优阈值。方差: 例如 1,2,3,4,5 先求均值:1/5(1+2+3+4+5)=3 方差=1/5[(1-3)^2+(2-3)^2+(3-3)^2+(4...
2018-05-05 17:50:41
62337
8
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人