自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (3)
  • 收藏
  • 关注

原创 libhv学习笔记7:IO事件之write事件

今天主要分析下libhv中的IO事件中的写事件的过程。如有理解错误,欢迎批评指正。还是先看接上一篇的源码int main(){ hloop_t* loop = hloop_new(0); // 客户端fd int connFd = ConnectTimeout("127.0.0.1",1234); //io事件 hio_t * hio = hio_get(loop,connFd); //设置read 回调函数 hio_setcb_read

2021-05-16 20:16:26 1015

原创 libhv学习笔记6:IO事件之read事件

今天主要分析下IO事件中的读事件的过程。如有理解错误,欢迎批评指正。int main(){ hloop_t* loop = hloop_new(0); // 客户端fd int connFd = ConnectTimeout("127.0.0.1",1234); //io事件 hio_t * hio = hio_get(loop,connFd); //设置read 回调函数 hio_setcb_read(hio,on_rev); /

2021-05-13 21:13:14 1032

原创 libhv学习笔记5:heap.h分析

上一篇分析了libhv里面用到的链表的实现,今天我们看一下定时器超时事件中用到的堆得实现。堆定义1.堆中的某个节点总是不大于或不小于其父亲节点2.堆总是一颗完全二叉树那么,最大堆就是父节点比每一个子节点值都要大。最小堆就是父节点比每一个子节点值要小。例子(最小堆)完全二叉树的定义对于一个树高为h的二叉树,如果其第0层至第h-1层的节点都满。如果最下面一层节点不满,则所有的节点在左边的连续排列,空位都在右边。这样的二叉树就是一棵完全二叉树源码分析结构体的定义struct heap

2021-05-02 17:38:59 921 4

原创 libhv学习笔记4:list.h分析

在libhv中,用到了链表的数据结构(比如说,struct hloop_s中的 struct list_head idles),其定义和实现在list.h中。首先看一下结构体:struct list_head { struct list_head *next, *prev;};#define list_node list_head可以看到,只包含了两个指针,而没有数据域,后面看一下到底是怎么使用的。初始化结构体static inline void list_ini

2021-04-28 21:27:40 508

原创 libhv学习笔记3:hloop_process_events分析

hloop_process_events函数在上一篇中已经看过,今天深入看一下这部分代码。如有理解错误,欢迎批评指正。代码总览// hloop_process_ios -> hloop_process_timers -> hloop_process_idles -> hloop_process_pendingsstatic int hloop_process_events(hloop_t* loop) { // ios -> timers -> idles

2021-04-26 20:36:51 922

原创 libhv学习笔记2:从hloop_test入手

从本文开始,由sample入手,逐渐理解libhv的源码。如有理解错误,欢迎批评指正。main()函数int main() { // memcheck atexit HV_MEMCHECK; hloop_t* loop = hloop_new(0); // test idle and priority for (int i = HEVENT_LOWEST_PRIORITY; i <= HEVENT_HIGHEST_PRIORITY; ++i) {

2021-04-24 21:56:27 2150 5

原创 libhv学习笔记1:安装及Sample运行

libhv安装及example运行前言下载地址编译example执行修改example,重新编译总结前言libhv是一个类似于libevent、libev、libuv的跨平台网络库,提供了更简单的接口和更丰富的协议。已经被为awesome-c和awesome-cpp所收录。我希望从example入手,一步一步剖析libhv源码的精髓。算是下载地址地址:https://gitee.com/libhv/libhv.gitgit clone https://gitee.com/libhv/libh

2021-04-22 23:38:40 1203

原创 树莓派下pytorch-1.8安装完整实践

1. 安装树莓派64位操作系统下载链接:https://downloads.raspberrypi.org/raspios_arm64/images/raspios_arm64-2020-05-28/2020-05-27-raspios-buster-arm64.zip安装过程请自行百度默认账号:pi默认密码:raspberry2.安装pytorch1.8.0下载地址:https://pypi.org/project/torch/#files注意:修改名字为torch-1.8

2021-03-09 23:24:19 2315 5

原创 numpy 转c指针【python调用c代码】

在写《瘦脸实现【Python】》时候实现了在python环境下的瘦脸功能,但实际使用起来,python的处理速度实在太慢,让人难以接受,所以用c语言重新实现了一次,速度有了很大的提升。因为之前的UI是用python搭建的,所以想通过python调用c的方法实现算法的加速。因为联想到opencv也有python的API,在python下,图像处理的速度也很快,所以就查找了opencv通过怎样的方...

2018-09-08 15:27:46 3902 4

原创 瘦脸实现【Python】

对实现人脸瘦脸简单功能的一个记录,大概流程如下:1.使用dlib检测出人脸关键点2.使用Interactive Image Warping 局部平移算法实现瘦脸瘦脸的原理可以参照这篇博客https://blog.csdn.net/grafx/article/details/70232797?locationNum=11&amp;fps=1下载地址:https://download....

2018-09-05 10:44:51 9641 8

原创 改进zhang方法图像细化(单像素)

本文主要实现实现了和讲解图像细化算法,引用论文 “牟少敏,杜海洋,苏平,查绪恒,陈光艺.一种改进的快速并行细化算法[J].微电子学与计算机,2013,(第1期)” ,免费下载地址点击打开链接(直接在http://www.ucdrs.superlib.net/中搜索也可)。zhang的算法是经典的细化算法,具有速度快、保持细化后 曲线的连通性和无毛刺产生等优点,但它细化后的结果不能保证曲线纹路为

2017-01-20 09:17:29 7930 1

原创 Qt下图像自定义显示控件

一个简单的继承QWidget的图像显示控件,可以用来显示摄像机采集得图像,支持缩放和图像的拖动,之前用过QLabel,但是在高帧率的采集速度下,会很卡。可以根据需求,自己添加一些绘图操作。使用上,只要在项目中添加两个文件,然后在UI界面中添加一个Widget再提升就可以了。头文件imagewidget.h#ifndef IMAGEWIDGET_H#define IMAGEWIDGET_H

2017-01-07 15:04:37 2308 2

opencv_python-4.1.1.26-cp37-cp37m-linux_armv7l.whl

树莓派用opencv,官网下载极慢,在此分享。

2020-02-22

瘦脸(python版)

python版瘦脸功能,使用dlib检测关键点,局部平移算法瘦脸。包含shape_predictor_68_face_landmarks.dat文件

2018-09-05

Qt下的自定义图像显示控件

支持图像的放大缩小和移动,适合图像开发者的入门借鉴,支持高帧率相机的图像采集得显示。(必须得50个字的介绍)

2017-01-07

空空如也

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

TA关注的人

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