自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (1)
  • 收藏
  • 关注

原创 Gaussian Blur

图像的平滑模糊是一种很常见的操作,实际上是一个计算权重均值的过程。比如a,b,c三人各有100元,20元,3元,设置权重为(1,2,3),对b计算权重均值后b的钱为(1*100 + 2*20+3*3)/ 6 = 24.83元对应图像中就是3*3或更多个点取权重均值。如果权重满足正态分布,那么这个计算过程就是高斯模糊,权重也叫核。参考https://www.jianshu.com/p/...

2019-03-31 22:44:21 638

原创 rsa

N值:为两个质数q,p之乘积,比如q=7,p=11,则N=77L值:为p-1、q-1的最小公倍数,7-1=6,11-1=10,6和10的最小公倍数是30,则L=30E值:E和L互质且E小于L。13和30互质,则E=13D值:D小于L,D和E的乘积对L取余为1,显然7*13=91,91mod30=1,则D=7公钥对是(E,N),则为(13,77),私钥是(D,N),则为(7,77)...

2019-03-10 14:09:43 191

原创 opencv 基本绘图操作

实践一下opencv的基本绘图操作,点线圆走一套。虽然很基础,对于熟悉opencv的基本数据类型是很有帮助的。#include "opencv2/highgui.hpp"#include "opencv2/imgproc.hpp"#include <iostream>using namespace cv;using namespace std;void drawTe...

2019-01-03 00:35:24 3159

原创 goodFeaturesToTrack & cornerHarris

好不容易元旦两天假,学习了一下goodFeaturesToTrack 和 cornerHarris的使用。#include "pch.h"#include "opencv2/highgui.hpp"#include "opencv2/imgproc.hpp"#include <iostream>using namespace cv;using namespace st...

2019-01-01 21:23:09 376

原创 K-means

Kmeans又是一个以点到点距离为判断依据的算法,物理上的质心很好的形容了这个算法的目的。说的没有做的理解深,还是实践一下。#include "pch.h"#include <opencv2/core.hpp>#include <opencv2/imgproc.hpp>#include "opencv2/imgcodecs.hpp"#include &lt...

2018-12-27 23:49:09 73

原创 人脸检测

人脸检测在生活中已经随处可见,今天使用opencv来实践一番。void example_face_dectect(cv::Mat &image, cv::CascadeClassifier faceCascade, cv::CascadeClassifier eyeCascade) { std::vector<cv::Rect> faces; std::vector...

2018-12-23 20:11:21 104

原创 visual studio 配置opencv

1.添加环境变量2.创建项目后新建一个属性表3.双击创建的属性表,添加引用4.后续新项目直接导入这个创建的属性表即可。

2018-12-23 12:34:10 638

原创 blur & filter

理解:模糊就是让图像变的平滑,平滑到极致图片就变成了一个色块。锐化就是增加色彩的对比度,对比到极致图片就变成了很多色块。实践:void example_blur(const cv::Mat &image) { cv::Mat out; cv::namedWindow("example_blur", cv::WINDOW_AUTOSIZE); cv::Gaussian...

2018-12-22 14:07:56 150

原创 Support Vector Machines (SVM) 支持向量机

理解1.分割:二维平面上存在两类点,有多条线可以分割两类点,哪条线最优?2.最优:所有点到直线的距离中找到最小值,使这个最小值最大化的那条线。(即所有点到线A的距离中找到最短距离AL,再有所有点到线B的距离中找到最短距离BL,AL和BL谁更长则更优。假设平面上只有两个点,是不是刚好就是两个点正中间且与两个点连线垂直的那条线呢?)3.线性分割:就是用一条直线或一个平面可以进行分割...

2018-12-20 00:56:21 137

原创 i2c

i2c是使用非常广泛的通信协议,tp,sensor都用它,今天就来熟悉总结一下i2c的使用//i2c 写操作static int my_i2c_write(struct i2c_client *client, u8 addr, u8 *pdata, int datalen){ int ret = 0; unsigned int write_buf_len = 0; u8 write...

2018-12-08 23:30:42 318

原创 tasklet & workqueue

为了提升内核的响应速度,中断处理往往会分成上半部和下半部来执行。上半部在中断处理函数中处理少量事物并激活下半部,一般通过tasklet 或 workqueue 来实现。workqueue 参考:void workqueue_func(struct work_struct *work) // 下半部执行函数{ printk("workqueue bottom half\n"); ...

2018-11-26 22:37:35 143

原创 Linux input subsystem

最近学习了一下Linux的输入子系统编程,做个记录。简单分为3个部分,一是注册输入设备和键值,二是gpio的配置和申请,最后是中断来临后键值的上报流程。linux设备的注册都是固定套路,主要区别还是在于硬件平台的不同需要做不同的处理。static struct input_dev *key_dev;static irqreturn_t key_interrupt(int irq,...

2018-11-25 22:47:09 123

转载 NASA 顶级程序员是如何编程的?这里有十大准则

转自:http://blog.csdn.net/csdnnews/article/details/78527530NASA 的十大编码准则:1、简化控制流程:使用尽可能精简的控制流程构造编写程序 – 不要使用 setjmp 或 longjmp 构造、goto 语句,以及直接或间接的递归调用。2、为循环使用固定次数上限:所有的循环必须有一个固定的上限。 必须可以被某个检测工具

2017-11-17 23:40:50 227

原创 socket

1.socket是一个常用的网络通信API,今天就学习一下多线程配合socket进行通信。服务端server.c#include #include #include #include #include #include #include #include #define SERVERPORT 9009#define BACKLOG 10#defin

2017-10-08 23:37:23 129

原创 poll & epoll & select

select,poll,epoll都是常见的多路复用阻塞函数 #include int poll(struct pollfd fds[], nfds_t nfds, int timeout);       #include        int select(int nfds, fd_set *restrict readfds,

2017-09-23 11:24:21 133

原创 sem_wait & sem_post

sem_wait 和 sem_post这两个函数经常在线程同步时使用,伴随的还有创建和销毁函数sem_init,sem_destroy#include #include #include #include #include static sem_t sem_t1;static int status = 1;static pthread_t pthread_t1 = -1;st

2017-09-22 22:00:40 1712

原创 signal

signal 是一种类似于中断的软处理机制,今天就来熟悉一下signal和sigaction的使用。#include #include #include #include typedef void (*sighandler_t)(int);static void sig1(int sig){ printf("sig1=%d\n", sig); alarm(1);

2017-09-21 23:01:05 205

原创 time的使用

时间函数使用time,ctime,gmtime_r,localtime_r,gettimeofday#include #include #include #include #include // struct tm {// int tm_sec; /* Seconds (0-60) */// int tm_min; /* Minutes (0-59)

2017-09-19 00:22:38 423

原创 pthread使用

简单实现主线程与子线程之间的同步

2017-09-17 23:37:55 224

原创 sublime 安装配置

每次重装系统或者啥意外情况就导致编辑器要重新配置,保存下来方便以后使用{ "draw_white_space": "all", //显示空格 "font_size": 15, "highlight_modified_tabs": true, "ignored_packages": [ "Vintage" ], "line_padding_bottom": 2, "lin

2017-09-16 13:14:55 483

原创 daemon

#include #include #include #include void create_daemon_by_self(void){ pid_t pid_t1; int ret = -1; long fd_max = -1; pid_t1 = fork(); //create a new process 创建子进程 if(pi

2017-09-15 23:42:18 156

原创 file stat

int file_stat(){ struct stat stat1; int ret = -1; int file_count = 0; DIR *dir1 = NULL; struct dirent * dirent1 = NULL; memset(&stat1, 0, sizeof(stat1)); ret = stat(FILENAME, &stat1); if(ret

2017-09-13 23:50:50 842

转载 android 添加一个按键键值

1.frameworks/base/data/keyboards/Generic.kl (键盘布局文件添加键值映射,这里的键值对应kernel里面的键值,按键名字对应上层keycodes.h里面定义的按键名字) key 497 GESTURE_WAKELOCK2.frameworks/base/core/res/res/values/attrs.xml enum name=

2017-09-13 11:01:19 386

原创 io

文件读写是一个常见且重要的操作,今天就来熟悉一下文件读写函数read(),open(),write(),fread(),fopen(),fwrite()等操作。#include #include #include #include #include #include #include #define FILENAME "test.txt"int read_write()

2017-09-12 01:35:06 207

原创 makefile 指定文件的生成目录

1.上一篇博客虽然简单实现了自动处理依赖关系,但是生成的各种临时文件都混在一起,太乱了。假定我们的源文件放在src目录,头文件放在inc目录,.o文件放在obj目录,.d文件放在dmk目录,Makefile和上述4个目录为同一级别。则定义如下变量:D_SRC = srcD_INC = -I./incD_OBJ = objD_MK = dmk2.自动遍历src目录下的所有.c

2017-09-09 21:59:17 17472 3

原创 makefile处理源文件对头文件的依赖

1.从HelloWorld开始,假设有如下代码hello.c:#include #include "a.h"#include "b.h"#include "hello.h"int main(int argc, char* argv[]){ printf("hello world.\n"); return 0;}接着上一篇简单理解makefile我们有如下式

2017-09-09 21:13:10 1018

原创 makefile 与 链接库

使用makefile生成自己的动态和静态链接库

2017-09-07 00:08:21 544

原创 简单理解Makefile

1. 从hello world开始,假设在hello.c中有如下代码#include int main(int argc, char* argv[]){ printf("hello world.\n"); return 0;}2. 把hello.c编译成可执行程序hello可简单分两步执行以下命令,把.c生成.o。 -c表示只编译不链接。gcc -c h

2017-09-06 23:10:58 298

原创 win7下安装Ubuntu16.04及android源码下载,编译

1.下载好Ubuntu-16.04.iso放到C盘根目录,安装好easyBCD   下载地址:http://www.ubuntu.org.cn/download/desktop    http://www.onlinedown.net/soft/58174.htm2.打开easyBCD->添加新条目->NeoGrub->安装->配置   在弹出的文本框中输入title

2017-05-16 01:08:11 251

原创 icache操作

mrc p15, 0, r0, c1, c0, 0;  //读取cp15的c1到r0中bic r0, r0, #(1orr r0, r0, #(1mcr p15, 0, r0, c1, c0, 0 //写入cp15

2016-12-01 00:33:26 480

原创 使用C汇编

#define WTDCON 0xE2700000#define SVC_STACK 0xD0037D80.global _start_start:ldr r0, =WTDCON //watchdog timer 控制寄存器地址写入r0寄存器ldr r1, =0x0 //赋值0str r1, [r0] //寻址,写0关闭watchdogldr sp, = SVC

2016-11-27 23:10:36 208

原创 led操作

#define GPJ0CON 0xE0200240#define GPJ0DAT 0xE0200244.global _start //声明_start作用域为全局_start:ldr r0, =0x11111111//等号为伪指令,对r0赋值ldr r1, =GPJ0CN //对r1赋值,值为当前开发板GPJ0 Control Register 的地址s

2016-11-27 00:37:01 320

makefile test

make file 用用用,make file 说说说, make file 看看看。

2018-06-24

空空如也

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

TA关注的人

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