自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 资源 (10)
  • 问答 (1)
  • 收藏
  • 关注

原创 shell的中的字符串处理

去掉从左数最后一个 “/” 及其左边的所有字符,其中 “/” 也可以替换为其他字符。去掉从左数第一个”/”及其右边的所有字符,其中 “/” 也可以替换为其他字符。

2023-07-31 14:14:02 3513

原创 【音频分析】短时傅立叶变换结果为啥是对称?每个结果对应的频率是多少?

传统艺能,又来搞傅立叶变换。在短时傅立叶变换只有离散的一些频率,变换之后的频谱分布有哪些规律呢?解释对称性上公式,N是时间域的窗口采样数(即数组长度)正变换F(k)=∑n=0N−1f(n)∗e−i2πnkNF(k) = \sum_{n=0}^{N-1}f(n)*e^{-i\frac{2\pi nk}{N}} F(k)=n=0∑N−1​f(n)∗e−iN2πnk​周期性WNn(k+N)=e−i2πn(k+N)N=e−i2πnkN∗e−i2πn=WNnkF(k)=F(k+N)W_{N}^{n

2022-03-11 22:57:48 903

原创 【音频分析】音频短时时域分析

文章目录短时处理窗函数短时能量和振幅音调(音高)、基频和自相关短时处理音频文件或音频流的采样率通常是8K,16K,48K之类的,即每秒钟有8000、16000、48000个样本。以16K采样率为例,一个信号仅耗时0.0625ms,显然逐信号处理的富余时间太短了。因此和视频传输类似,音频的传输单位,是一个较短时间窗口的采样累积,广义地也可以称之为帧(frame)。传输是逐帧完成,计算也可以逐帧完成,或者缓存一些帧来完成。一般来说,16K音频采用10ms的窗口,这个窗口和音频长度相比非常小,因此,可以称之

2022-03-10 21:17:49 1950

原创 H264流间隔I帧取GOP

传输包的样子,每个I帧的包包含sps,pps,和I帧数据,I帧+后边的p帧(没有B帧)组成一个gop,这个包可以被单独解码。如上图所示,I帧的编码是3个nal组合而成,如果没有前两个nal,则需要缓存第一次出现的sps,pps然后每次加上。判断帧类型参考 https://blog.csdn.net/u010925568/article/details/75040492https://blog.csdn.net/jinlong0603/article/details/70170042判断的关键代码

2022-01-13 16:55:09 1879

原创 curl超过1024字节post的坑

现象:用curl传输图片base64的时候,总是卡在中间没有返回也不退出。而python request又可以原因libcurl 当 POST的数据大于1024字节的时候,http默认添加请求头Expect: 100-continue,先追加一个Expect: 100-continue请求头信息,发送这个不包含 POST 数据的请求;如果服务器返回的响应头信息中包含Expect: 100-continue,则表示 Server 愿意接受数据,这时才 POST 真正数据给 Server;解决办法

2021-12-02 16:38:58 2706

原创 linux下 libcurl+jsoncpp的使用

libcurl提供类似curl命令的网络访问api,jsoncpp用来解析json安装libcurl安装需要https://curl.haxx.se/download.html 下载相关包或者sudo yum install libcurl-develsudo apt install libcurl4-openssl-dev sudo apt install libcurl4-nss-dev sudo apt install libcurl4-gnutls-devyum和apt命令可以安装htt

2021-12-02 16:36:15 1019

原创 【FFMpeg 命令行】基本应用

1. pcm转wavffmpeg -f s16le -ar 16k -ac 1 -i input.pcm output.wav-f format 可以用-formats查看支持的格式,s16le代表pcm16位有符号小端存储-ar audio rate 采样率,单位是Hz,每秒的采样数-ac audio channel数,一般默认是1-i 输入2. wav转pcm ffmpeg -i input.wav -f s16le -ar 48000 -ac 1 -acodec pcm_s16le o

2021-12-02 16:30:18 749

原创 【ffmpeg code】解封装和解码

文章目录1. 总体步骤2. 代码2.1 解封装类2.2 解码类2.3 使用 with sdl22.4 编译最近又经常涉及到ffmpeg的使用,本来也用得不熟。现在新学开始整理一下1. 总体步骤打开一个媒体文件,获取帧数据统共两步:创建一个AVFormatContext 去解封装,获取packet通过formatcontext的解码器参数信息拿到解码器上下文AVCodecContext ,然后解码获取frame2. 代码进行封装,方便理解,封装参考[FFMPEG开发总结]1. 了解AVFor

2021-12-02 16:20:12 2527

原创 修复双系统引导踩坑

想让win10区引导ubuntu,结果easybcd误删了ubuntu的引导修复分两步:step1. 用u盘try ubuntu重建grubsudo fdisk -lsudo blkid # 找到linux所在的分区和路径 我的是/dev/sda3 和 /dev/sda4 只有sda3有用#在mnt在新建目录 ubuntusudo mkdir /mnt/ubuntu#挂在sda3sudo mount /dev/sda3 /mnt/ubuntu#挂在完后去/mnt/ubuntu 下看看,

2021-02-21 18:39:31 189

原创 git 多端操作,解决冲突

远程维持一个主分支A端拖一个本地分支git brach localA git checkout localA # 或者git checkout -b localA 相当于两句一起然后修改提交git add *git commit -m "xxx"git checkout master #切换回主分支git push origin master #多次提交后直接push此时B端也做了修改 ,并进行了提交git brach localB git checkout localB # 或者

2021-02-21 18:38:26 131

原创 ffmpeg编解码demo

#include <stdbool.h>#include <stdio.h>#include <stdlib.h>#include <string.h>extern "C" { #include <libavutil/time.h> #include <libavutil/timestamp.h> #include <libavutil/opt.h> #include <libavformat/avf

2021-02-21 18:37:02 499 1

原创 从计算图复制variable到另一个计算图

定义两个计算图,内部操作全部一样,一个keras一个tensorflow,将keras的参数复制给tensorflow。from keras.layers import Conv2D,MaxPool2D,Permute,TimeDistributed,Flatten,Input,Dense,Lambdaimport keras.backend as Kfrom keras.engine.topology import Layerimport tensorflow as tfimport numpy

2021-02-21 18:28:46 148

原创 keras模型h5格式转换tfLite和手机端部署

keras模型h5格式转换tfLite和手机端部署格式转换1. checkpoint的model保存为basemodelnclass = 5990input = Input(shape=(32, 280, 1), name='the_input')y_pred= dense_cnn_svd(input, nclass,92)basemodel = Model(inputs=input, outputs=y_pred)basemodel.load_weights("densenet_svd/de

2021-02-21 18:27:49 1243

原创 tensorflowjs初次摸底

安装tensorflowjsnpm install @tensorflow/tfjsquant 1bit 要转成graph模型才行<!DOCTYPE html><html><head> <script src="node_modules/@tensorflow/tfjs/dist/tf.min.js"></script></head><body> <img src="0_HELEN.

2021-02-21 18:25:58 156

原创 shell光标

#!/bin/bashecho -n Count:tput sc #清空屏幕tput cup 2 10count=10;while true;do if [ $count -lt 110 ]; then count=$(($count+11)); sleep 0.5; tput rc #恢复光标最后保存的位置 #tput cup 2 10 tput ed #清空光标位置到设备尾部的数据 .

2021-02-21 18:24:11 176

原创 shell 实现进度条

#!/bin/basha=({1..100})b=''for i in ${a[@]}do if [ $(($i % 2)) -eq 0 ] then printf "progress:[%-50s]%d%%\r" $b $i #左对齐50个字符 sleep 0.1 #echo -ne '\r'$i b=#$b fi doneprintf "\n"其中 printf中的

2021-02-21 18:21:53 375

原创 解码%xx之类类似url乱码的文件名

网上找到的方法url=”要解码的URL地址”printf (echo -n url | sed ‘s/\//\\/g;s/(%)([0-9a-fA-F][0-9a-fA-F])/\x\2/g’)”\n批量方法#!/bin/bashnames=$(ls)for name in $namesdo dstName=$(echo -n $name | sed 's/\//\\/g;s/\(%\)\([0-9a-fA-F][0-9a-fA-F]\)/\\x\2/g')

2021-02-21 18:20:37 486

原创 shell替换

sed 和vim中的替换sed 加引号可以用转义字符,如果有反斜杠的话,反斜杠可以用其他特殊字符代替,如果不加单引号vim中直接可以用批量替换文件名ls |sed -n /A/p| xargs -i echo mv \{}\ \{}\ | sed s/A/a/2g | sh解释:首先读取目录下所有文件名并正则过滤,之后通过xargs -i 就地拼接成mv命令,然后用sed命令取替换第二个为新字段,最后输入到sh中执行效率:10000个文件大概要10s。100000个文件大约130s..

2021-02-21 18:17:42 293

原创 PIL实现色相变换

from PIL import Image,ImageColor# from torchvision.utils import make_gridimport randomfrom functools import partialdef func(x,c):return x+c if x+c <256 else 255def adj_hue(img):hue,s,v = img.split()f1 = partial(func,c=random.randint(-20,20))

2021-02-21 18:15:07 326

原创 python多进程通信和字符串传递

from multiprocessing import Process,Event,Arrayimport osimport time# src : 输入共享内存地址# res : 输出共享内存地址# i : 任务编号# es : 任务开始事件# ef : 任务结束事件def work(src,res,i,es,ef): while True: es.wait() time.sleep(2) # 模拟任务执行时间 res.ge

2021-02-21 18:14:10 427

原创 C语言扩展python

目录结构├── setup.py├── source│ └── mymodel.cmymodel.c#define PY_SSIZE_T_CLEAN#include <Python.h>/** * reverse * 实际执行函数 * * @param str * @param size */void reverse(char *str, int size) { for (int i = 0, j = size-1; i <

2021-02-21 18:13:02 178

原创 mxnet转keras的记录

import kerasfrom keras import layersimport numpy as npimport mxnet as mximport cv2def build_net(): the_input = layers.Input(shape=(48,48,3)) x = layers.Conv2D(64,(3,3),strides=(1,1),padding="valid",use_bias=True,name='conv1')(the_input)

2021-02-21 18:11:24 140

原创 初探proto和protobuf

初探protobuf是一种类似xml生成java对象的技术,经过protoc编译.proto文件为.h和.cc文件供给C++调用。是一种数据对象生成方式,.proto定义对象的个格式。data.protosyntax = "proto3";package train_set;message PhoneNumber { string number = 1; int32 type = 2 ;}message Person { string name = 1; i

2021-02-21 18:09:36 568

原创 记录C++的webSocket服务代码

server.cpp#include<stdio.h>#include<stdlib.h>#include<string.h>#include<errno.h>#include<sys/types.h>#include<sys/socket.h>#include<netinet/in.h>#include<unistd.h>#include <opencv2/opencv.hpp&

2021-02-21 18:05:51 207

原创 c++ split

C++的string类功能残缺(没有split等),麻烦(格式化)C的输入不安全,读取还是用c++的流方便。因此,输入用c++的流,输出用sprintf,split用流模拟,或者用strtok比较方便。//strtokfgets(buf,10000,stdin);char * res = strtok(buf,seq);while(res!=NULL){ printf("%s\n",res); res = strtok(NULL,seq); /*首次调用result =

2021-02-21 18:02:50 3771

原创 epoll + socket

功能 读取视频并播放注释部分为多线程方案单线程epoll方案每帧都要请求,可以做到帧同步多线程方案可以不用每帧都请求,不能做到帧同步, 各发各的#include <stdio.h>#include <stdlib.h>#include <string.h>#include <errno.h>#include <sys/types.h>#include <sys/socket.h>#include <neti

2021-02-21 17:57:14 136

原创 caffe自定义层

实现hpp和cppnet在拿到layer之后会调用每层layer的Setup函数,每层Setup中会调用:void SetUp(const vector<Blob<Dtype>*>& bottom,const vector<Blob<Dtype>*>& top) { CheckBlobCounts(bottom, top); LayerSetUp(bottom, top); Reshape(bottom, t.

2021-02-21 17:54:45 132

原创 caffe C++接口前馈调用

#ifndef CPU_ONLY#define CPU_ONLY#endif#include <string>#include <vector>#include <iostream>#include "caffe/caffe.hpp"#include "caffe/layers/input_layer.hpp"#include "caffe/layers/conv_layer.hpp"#include "caffe/net.hpp"#include

2021-02-21 17:53:19 99

原创 xgboost等集成学习原理推导

机器学习的一般模型 obj(θ)=L(θ)+Ω(θ)obj(θ)=L(θ)+Ω(θ)obj(\theta) = L(\theta)+\Omega(\theta) 目标函数等于损失函数加正则项。在boost中,为弱学习器的级联。约定训练集为X,个数为N,维度为M,xixix_i 为第i个样本,yiyiy_i 为第i个样本的标签, y^(0)i=0y^(1)i=y^(0)i+f1(xi)y^...

2018-04-05 19:52:11 247

原创 采坑lightGBM的windows安装gpu版本

踩坑lightGBM的windows安装gpu版本​ 最近有个念头想搞一波boost,有不想折腾Linux,在安装了windows下的gpu版本xgboost之后,听闻传说中的倚天剑lightGBM神速无敌,为了不可惜一个1060ti的gpu,强行在windows上安装。​ 然而,就像预想的一样,想不采坑,那是很困难的。按照官方的步骤,安装了cuda和boost以及cmake之后,...

2018-03-30 20:54:13 6047 5

原创 windows的注册列表和使用注册列表建立右键菜单

​ 注册表就是一个统一集中地管理系统硬件设施、软件配置等信息的数据库,其中存放着各种参数,直接控制着windows的启动、硬件驱动程序的装载以及一些Windows应用程序的运行,并在其中记录了与机器有关的硬件和软件的配置信息,及联网计算机的整个系统的设置和各种许可,文件扩展名与应用程序的关联,硬件部件的描述、状态和属性,性能记录和其他底层的系统状态信息,以及其他数据等。 根键 ...

2018-03-10 21:43:58 1774

转载 关于python文件操作

出处:关于python文件操作 总是记不住API。昨晚写的时候用到了这些,但是没记住,于是就索性整理一下吧:python中对文件、文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块。得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd()返回指定目录下的所有文件和目录名:os.listdir()函数用来删除一个文件:os.remove()删除多个目录:os.r

2017-12-05 20:02:56 230

原创 记录快速傅里叶变换计算相关面并附tensorflow相应层代码

Fast Template Matching,J. P. Lewis#-*- coding:utf-8 -*-import numpy as npimport matplotlib.pyplot as pltimport cv2from Integral_image import *## read img #####tm_path = '/home/wdh/pytorch-CycleGA

2017-11-27 16:20:55 1255 1

原创 记录用tensorflow 实现Cosin_Cross_templateMatch层

#-*- coding:utf-8 -*-import tensorflow as tfimport cv2import numpy as npimport matplotlib.pyplot as pltfrom Integral_image import *## read img #####tm_path = '/home/wdh/pytorch-CycleGAN-and-pix2

2017-11-25 22:03:56 280

原创 记录使用tensorflow实现大卷积核卷积的代码

#-*- coding:utf-8 -*-import tensorflow as tfimport cv2import numpy as npimport matplotlib.pyplot as plt## read img #####tm_path = '/home/wdh/pytorch-CycleGAN-and-pix2pix1_run/datasets/maps_0/test

2017-11-24 16:11:57 810

原创 python 爬虫练习二, 爬取python标准库为pdf

爬取python标准库想要把Python的标准库文档趴下来,试过直接存成html,但是简单的存储css的样式等都会丢失,遂想存为pdf。需要一个工具pdfkit,结合之前的selenium爬下来。首先需要pip install pdfkit# coding:utf-8import urllibfrom urllib import requestimport os,timefrom os im

2017-11-12 18:37:56 462

原创 vim 学习笔记三,Ubuntu下vim 安装vundle和有youcompleteme+jedi

vundle是管理插件的插件安装方法需要gitgit clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim​ 如果没有目录,在.vim 目录下cd ~mkdir .vimcd .vimmkdir bundle​ 用法filetype offset rtp+=~/.vim/bundle/V

2017-11-06 21:22:21 2773

原创 2. vim学习笔记之二,vimtutor 教程笔记

vimtutor 教程笔记删除移动和替换查找和快速替换行底命令模式的常用操作和设置2. vimtutor 教程笔记文档官方下载地址,CSDN下载地址vim的中文手册包含两部分,分别是User_Manual和Reference,前者是面向任务的说明书,较为简略,后者是详细说明。在vim中如果安装了中文教程,在底层命令模式下 :help也可以在vim中查看。在控制台中输入vimtutor可以完成一

2017-10-31 09:39:49 327

原创 vim 学习笔记一,从windows转入linux

vim 学习笔记一从windows转入linux环境配置和基础操作vim的光标定位vim 的剪切和删除vim 的复制vim 的粘贴vim 的回滚与撤销回滚vim 学习笔记一,从windows转入linux之前一直断断续续的用过vim,一直不熟练,现在基于一些问题系统总结一下。vim官网 ​ 首先环境是ubuntu16.04,由于windows下转linux,在知晓vim的基本模

2017-10-28 19:46:48 761

原创 Ubuntu 解决触摸板不识别问题

Ubuntu 解决触摸板不识别问题sudo vi /etc/default/grub#把GRUB_CMDLINE_LINUX="" 改为GRUB_CMDLINE_LINUX="i8042.reset i8042.nomux i8042.nopnp i8042.noloop"sudo update-grubsudo reboot

2017-10-27 16:31:23 9559 8

vim文档包,包含中文文档,英文文档,英文教程

包含vim的官方英文文档pdf,官方中文文档pdf,英文教程pdf。版本2.10,vim8.0

2017-10-30

MNIST数据集

MNIST手写数据集的打包,里面有四个包,分别是60000张训练集图片的文件,60000个标签文件。10000个测试的文件,10000个测试的标签。格式见官网

2017-09-05

徒手撸MLP的工程

VS2013 + OpenCv2.4.9 的手写数据集MNIST识别工程,使用自己搭建C++网络。包含层的定义,网络的定义,优化方法的定义。

2017-09-05

ACM国际大学生程序设计竞赛:知识与入门

2017-04-17

Treeviewer1.0

基于python3.4,pyqt5和matplotlib的微软决二叉策树查看工具,内含源码

2017-02-13

基于负熵最大化的FASTICA

基于负熵最大化的FASTICA

2016-12-23

Matlab_2014软件详细使用教程.pdf

Matlab_2014软件详细使用教程

2016-06-20

GDAL源码剖析(李民录).pdf

GDAL源码剖析(李民录).pdf 关于GDAL的使用说明和代码剖析

2015-12-01

Python计算机视觉编程

Python计算机视觉编程 Jan Erik Solem

2015-09-08

数据挖掘导论

数据挖掘导论 数据挖掘的入门书籍 Michael Steinbach ,Pangning Tan,Vipin Kumar.范明 范建宏译 人民邮电出版社

2015-03-27

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

TA关注的人

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