
c/c++
文章平均质量分 66
一个码农要什么昵称
寻寻匿匿
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
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 · 946 阅读 · 0 评论 -
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 · 427 阅读 · 0 评论 -
人脸检测
人脸检测在生活中已经随处可见,今天使用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 · 150 阅读 · 0 评论 -
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 · 199 阅读 · 0 评论 -
K-means
Kmeans又是一个以点到点距离为判断依据的算法,物理上的质心很好的形容了这个算法的目的。 说的没有做的理解深,还是实践一下。 #include "pch.h" #include <opencv2/core.hpp> #include <opencv2/imgproc.hpp> #include "opencv2/imgcodecs.hpp" #include <...原创 2018-12-27 23:49:09 · 109 阅读 · 0 评论 -
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 · 397 阅读 · 0 评论 -
tasklet & workqueue
为了提升内核的响应速度,中断处理往往会分成上半部和下半部来执行。 上半部在中断处理函数中处理少量事物并激活下半部,一般通过tasklet 或 workqueue 来实现。 workqueue 参考: void workqueue_func(struct work_struct *work) // 下半部执行函数 { printk("workqueue bottom half\n"); ...原创 2018-11-26 22:37:35 · 198 阅读 · 0 评论 -
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 · 181 阅读 · 0 评论 -
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 · 258 阅读 · 0 评论 -
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 · 265 阅读 · 0 评论 -
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 · 172 阅读 · 0 评论 -
pthread使用
简单实现主线程与子线程之间的同步原创 2017-09-17 23:37:55 · 282 阅读 · 0 评论 -
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 · 171 阅读 · 0 评论 -
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 · 198 阅读 · 0 评论 -
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 · 1952 阅读 · 0 评论 -
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 · 470 阅读 · 0 评论 -
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 · 3249 阅读 · 0 评论