自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(193)
  • 资源 (8)
  • 收藏
  • 关注

原创 给图像添加Logo

介绍给图像加上logo,这里介绍两种融合方法方法传统方法直接替换seamlessClone方法传统方法直接替换直接上代码def add_logo(cv_logo_img, cv_src_img): rows, cols, channels = cv_logo_img.shape roi = cv_src_img[0:rows, 0:cols] im...

2020-03-30 22:10:23 822

原创 图像特征匹配

简介本文主要演示利用opencv自带的特征检测算子做图像的特征匹配。检测算子包括SIFTSURFORB特征描述子提取算子包括SIFTSURFORBVGG匹配算法FlannBasedMatcher本文不对相关原理做介绍,只演示其用法,如果对原理感兴趣可以查阅相关文档学习。首先,包含所需要的头文件#include <opencv2/opencv.hpp&...

2020-03-28 10:46:54 1529

原创 imagezmq

简介imagezmq是使用PyZMQ消息将opencv图像从一个计算机传递到另一个计算机的一系列的Python类。安装方法如果是mac或者linux可以直接通过pip安装,window可能需要通过源码安装,其地址如下https://github.com/jeffbass/imagezmq.gitpip3 install -i https://pypi.tuna.tsinghua.edu.c...

2020-03-26 23:24:23 2679

原创 opencv中的filesystem

c++中缺乏对文件的相关操作,以前用的是stlplus中的文件操作,无意中发现opencv中也有相关实现,记录一下方便查询。#include <iostream>#include <opencv2/opencv.hpp>#include <opencv2/core/utils/filesystem.hpp>using namespace std;...

2020-03-16 20:18:56 1092

原创 生成库文件

在项目开发过程中,有时我们不想将我们的某些功能如何实现暴露出来,我们可以只提供声明的头文件+对应的库文件来实现,下面介绍一下如何生成库文件以及如何使用。创建项目创建一个glibrary的文件夹在该文件夹下创建如下几个文件CMakeLists.txt、build、include、src、use_library.cpp在inlude目录下创建一个test.h文件,其代码如下#ifndef...

2020-03-15 18:02:00 577

原创 emplace_back和push_back性能对比

push_back()函数向容器中加入一个临时对象(右值元素)时, 首先会调用构造函数生成这个对象,然后条用拷贝构造函数将这个对象放入容器中, 最后释放临时对象。emplace_back()函数向容器中中加入临时对象, 临时对象原地构造,没有赋值或移动的操作#include <opencv2/opencv.hpp>#include <iostream>#includ...

2020-03-11 11:42:15 1018

原创 mac多进程异常

objc[13262]: +[__NSPlaceholderDate initialize] may have been in progress in another thread when fork() was called.objc[13262]: +[__NSPlaceholderDate initialize] may have been in progress in another t...

2020-02-08 11:11:23 2493 1

原创 supervisor笔记

1. 什么是supervisor       superviosr是一个Linux/Unix系统上的进程监控工具,他/她upervisor是一个Python开发的通用的进程管理程序,可以管理和监控Linux上面的进程,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。不过同daemontools一样,它不能监控daemo...

2020-01-21 17:47:42 353

原创 监控文件

       当python文件发生变更时,每次手动杀掉进程然后重启这种操作台繁琐了。利用watchdog可以监控目录文件的变化,无需手动定时扫描,可以利用操作系统的API来监控目录文件的变化并发送通知。 首先安装watchdogpip3 install watchdog示例代码from watchdog.observers import Obser...

2020-01-20 20:30:41 279

原创 计算两条线段的交点

def isLineCross(pt1_1 , pt1_2 , pt2_1 , pt2_2): ''' 判断两条线是否相交 :param pt1_1: :param pt1_2: :param pt2_1: :param pt2_2: :return:True相交 ''' ret = min(pt1_1[0] , pt1_2[...

2019-07-11 18:02:03 2178

原创 linux下的一些bash命令

linux中的一些小技巧可以大大提高你的工作效率,本文就细数那些提高效率或者简单却有效的linux技巧,欢迎大家补充。删除从开头到光标处的文本ctrl +u删除光标到结尾处的文本ctrl +k光标移动到开头ctrl +a光标移动到结尾ctrl +e光标向前移动一个单词alt f命令行下复制和粘贴ctrl +insertshift +ins...

2019-06-17 19:32:14 753

原创 keras.backend.sum用法

#沿着指定轴计算张量之和from keras import backend as Kimport numpy as npimport tensorflow as tfa = np.arange(0 , 6).reshape(2 , 3)print(a)[[0 1 2] [3 4 5]]sum_a_keepdims = K.sum(a , axis=-1 , keepdims...

2019-06-16 00:32:23 10812

原创 vscode自动缩进

Windows系统: Shift + Alt + FMac系统: Shift + Option + FLinux系统: Ctrl + Shift + I

2019-05-15 15:02:40 10253

原创 opencv-python imshow()时报错

ApplePersistenceIgnoreState: Existing state will not be touched. New state will be written to (null)objc[25692]: Class QCocoaColorPanelDelegate is implemented in both /usr/local/lib/python2.7/site-pa...

2019-01-18 00:59:23 3727

原创 python字典合并

字典合并,相同的键对应的值相加import osa = {"han":1 , "sh":2}b = {"han":2}d = {'han':1 , "sh":3}def union_dict(*objs): keys = set(sum([obj.keys() for obj in objs] , [])) total = {} for key in keys:...

2018-09-19 20:18:01 894

转载 tensorflow教程——tf.GraphKeys

2018年05月21日 22:16:02 阅读数:317更多 个人分类: TensorFlow GraphKeys tf.GraphKeys包含所有graph collection中的标准集合名,有点像Python里的build-in fuction。首先要了解graph collection是什么。graph collection 在官方教程——图和会话中,介绍什么是tf.Gra...

2018-09-06 14:19:05 521

原创 tensorflow模型变量

#coding:utf-8import tensorflow as tffrom tensorflow.contrib import slimweights = slim.variable('weights' , shape=(3 , 3) , initializer=tf.truncated_normal_initializer(stddev=0.1) , regularizer=sli...

2018-03-22 17:45:39 454 1

原创 keras concatenate函数

concatenate从名字可以看出是连接两个数组,下面用一个小例子演示其用法import numpy as npimport cv2import keras.backend as Kimport tensorflow as tfa = K.variable(np.array([[1 , 2, 3]]))b = K.variable(np.array([[3 , 2, 1]]))...

2018-03-08 18:34:32 31709

原创 tensorflow 物体识别

tensorflow推出的object detection模块,为我们做物体检测提供了极大的便利,如果还没有安装该模块,可以参照 http://blog.csdn.net/hanshuobest/article/details/79222685 下面的示例演示如何用已训练的模型做物体检测import numpy as npimport osimport tensorflow as

2018-02-04 18:09:09 5888

原创 保存和加载pb模型

将模型保存为pbimport tensorflow as tffrom tensorflow.python.framework import graph_utillogdir='output/'with tf.variable_scope('conv'): w=tf.get_variable('w',[2,2],tf.float32,initializer=tf.ran

2018-01-31 22:20:07 5258 2

原创 git拉取某个分支到本地

git clone ****git fetch origin 分支名称git checkout -b origin/分支名称git pull origin 分支名称git branch -a 可以查看本地是否具有dev分支----------------------------------------强制覆盖本地git fetch --all git reset --hard o...

2018-01-31 22:14:13 1441

原创 tensorflow object detection模块

本文只是介绍一下tensorflow object detection模块的安装与使用。 1、下载tensorflow 的models模块https://github.com/tensorflow/models.git2、编译Protobuf库,在object_detection同级目录下打开终端运行: protoc object_detection/protos/*.prot...

2018-01-31 22:12:19 2415

原创 解决pip安装软件速度慢的问题

在ubuntu下经常用pip 安装一些第三方python库,pip是一个很方便的工具,但是有时用pip速度非常慢,甚至经常失败,令人十分苦恼,现在只需如下一条命令即可解决sudo pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensor2tensor这里我安装的是tensor2tensor,只需要替换程你想安装的第三方

2018-01-31 22:06:50 1337 1

原创 tensorflow显存设置

为避免训练时占用全部的gpu显存,只需设置如下代码import numpy as npimport tensorflow as tfimport osos.environ['CUDA_VISIBLE_DEVICES'] = '0'# 程序最多占用制定gpu的50%显存gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.

2017-12-28 10:16:36 414

原创 tensorflow 部分函数笔记

tf.identity(input, name=None) 返回一个一模一样的新tensor 示例:import tensorflow as tfa = tf.constant(1.0 , tf.float32)init = tf.global_variables_initializer()b = tf.identity(a)with tf.Session() as sess:

2017-12-25 00:37:11 225

原创 np.ravel()和np.flatten()

两者的功能是一致的,将多维数组降为一维,但是两者的区别是返回拷贝还是返回视图,np.flatten(0返回一份拷贝,对拷贝所做修改不会影响原始矩阵,而np.ravel()返回的是视图,修改时会影响原始矩阵 示例: import numpy as npa = np.array([[1 , 2] , [3 , 4]])b = a.flatten()print('b:' , b)c = a.ra

2017-12-23 21:57:04 39213

原创 keras 的LearningRateScheduler

keras.callbacks.LearningRateScheduler(schedule) 该回调函数是用于动态设置学习率 参数: ● schedule:函数,该函数以epoch号为参数(从0算起的整数),返回一个新学习率(浮点数)示例:from keras.callbacks import LearningRateSchedulerlr_base = 0.001e

2017-12-23 21:36:00 13370

原创 tf.stack和tf.unstack

tf.stack和tf.unstack分别表示矩阵的合并和分解,下面用一个小示例演示用法import tensorflow as tfimport sysimport osimport numpy as npa = tf.constant([1 , 2 , 3])b = tf.constant([4 , 5 , 6])c = tf.stack([a , b] , axis=0)d = tf

2017-12-23 21:17:21 1990

原创 判断两个矩形是否相交

原理就不多说了 ,这里直接上代码,经过测试是没有问题,如有发现问题欢迎指正!def isIntersection(xmin_a, xmax_a, ymin_a, ymax_a, xmin_b, xmax_b, ymin_b, ymax_b): intersect_flag = True minx = max(xmin_a , xmin_b) miny = max(ymin_a

2017-12-19 17:48:35 2622

原创 face_recognition安装

本文主要介绍一下face_recognition的安装方法,总结一下安装过程 ,希望大家能少走弯路,节约时间。安装ananconda,我这里选择的是ananconda3安装dlib,这里给出下载地址 https://pan.baidu.com/s/1eR43bXK 安装dlib比较费事 ,中间遇到了各种各样的奇怪问题 ,所以建议再安装的时候严格按照下面的要求。 我这里的开发环境是vs

2017-12-17 00:52:05 5640 2

原创 读取xml文件小示例

刚好用到了读取xml文件,这里就用一个小例子加深记忆,也方便以后查找。 下面是一个xml文件<annotation> <folder>VOC2012</folder> <filename>2007_000027.jpg</filename> <source> <database>The VOC2007 Database</database>

2017-11-22 15:59:50 1239

原创 numpy diff函数

numpy.diff(a, n=1,axis=-1)沿着指定轴计算第N维的离散差值 参数: a:输入矩阵 n:可选,代表要执行几次差值 axis:默认是最后一个 示例:import numpy as npA = np.arange(2 , 14).reshape((3 , 4))A[1 , 1] = 8print('A:' , A)#

2017-11-17 11:00:47 93236

原创 tf.nn.embedding_lookup函数

tf.nn.embedding_lookup(params, ids, partition_strategy='mod', name=None, validate_indices=True, max_norm=None)简单的来讲,就是将一个数字序列ids转化成embedding序列表示。 假设params.shape=[v,h], ids.shape=[m], 那么该函数会返回一个shape=

2017-11-16 16:09:01 536

原创 keras加载保存模型相关函数

*将模型保存为json json_string = model.to_json() 将模型保存为yaml yaml_string = model.to_yaml() 从保存的json中加载模型 from keras.modelsimport model_from_json model = model_from_json(json_string) 从保存的yaml中加载模型 model

2017-11-08 17:23:18 1140

原创 keras线性回归拟合直线

# -*- coding: utf-8 -*-"""Created on Sat Aug 26 18:25:28 2017线性回归拟合直线@author: Han"""from keras.models import Sequentialfrom keras.layers import Denseimport numpy as np# 创建一个等差数列trX = np.linspa

2017-11-08 16:23:36 1915

原创 快速排序

/************************************************************************//* 快速排序 *//**********************************************

2017-09-13 13:37:18 249

原创 二叉树

#include<iostream>#include<string>#include <stack>#include <queue>using namespace std;template <class T>struct BiNode //二叉树的结点结构{ T data; BiNode<T> *lchild, *rchild;};template <class

2017-09-13 13:16:28 487

原创 分割车牌

cv::Mat src = cv::imread("2.jpg" , 1); cv::Mat img_gray; cv::cvtColor(src, img_gray , CV_BGR2GRAY); // 图像滤波处理 cv::blur(img_gray, img_gray, cv::Size(5, 5)); cv::Mat src_filter; cv:

2017-09-10 22:13:48 815

原创 求输入向量的任何连续子向量的最大和

在编程珠玑里看到的,就随手写了一个,运行时间是O(n*n)后期再优化。#include <iostream>int calcMax(int array[], int length , int &start , int &end){ int sumMax = array[0]; for (int i = 0; i < length; ++i) { int su

2017-09-10 19:42:31 310

原创 递归二分搜索

#include <iostream>int binarysearch(int datas[], int x, int low, int high){ if (low > high) { return -1 ; } int mid = (int)(low + high) * 0.5; if (x == datas[mid]) {

2017-09-09 18:45:04 211

osg显示点云

利用pcl读取点云,osg显示

2016-06-07

十五个经典算法研究与总结、目录+索引(by_...)

十五个经典算法研究与总结、目录+索引(by_...)

2015-09-22

SURF原论文翻译

关于surf文章的翻译,并附加有一些解释,阅读起来更省力!

2014-08-12

sift算法详解及课件

详细讲解了sift原理,通俗易懂,对初学者帮助很大!

2014-08-08

学习Qt书籍

学习Qt的相关书籍,喜欢的可以下载看看!

2014-05-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除