<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[javababy3的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/javababy3</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; javababy3]]></copyright><item><title><![CDATA[Gaussian Blur]]></title><link>https://blog.youkuaiyun.com/javababy3/article/details/80297326</link><guid>https://blog.youkuaiyun.com/javababy3/article/details/80297326</guid><author>javababy3</author><pubDate>Sun, 31 Mar 2019 22:44:21 +0800</pubDate><description><![CDATA[图像的平滑模糊是一种很常见的操作，实际上是一个计算权重均值的过程。

比如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/...]]></description><category></category></item><item><title><![CDATA[rsa]]></title><link>https://blog.youkuaiyun.com/javababy3/article/details/80297364</link><guid>https://blog.youkuaiyun.com/javababy3/article/details/80297364</guid><author>javababy3</author><pubDate>Sun, 10 Mar 2019 14:09:43 +0800</pubDate><description><![CDATA[N值：为两个质数q,p之乘积，比如q=7，p=11，则N=77

L值：为p－1、q－1的最小公倍数，7-1=6，11-1=10，6和10的最小公倍数是30，则L=30

E值：E和L互质且E小于L。13和30互质，则E=13

D值：D小于L，D和E的乘积对L取余为1，显然7*13=91，91mod30=1,则D=7

公钥对是（E，N），则为（13，77），私钥是（D，N），则为（7，77）
...]]></description><category></category></item><item><title><![CDATA[opencv 基本绘图操作]]></title><link>https://blog.youkuaiyun.com/javababy3/article/details/80297335</link><guid>https://blog.youkuaiyun.com/javababy3/article/details/80297335</guid><author>javababy3</author><pubDate>Thu, 03 Jan 2019 00:35:24 +0800</pubDate><description><![CDATA[实践一下opencv的基本绘图操作，点线圆走一套。虽然很基础，对于熟悉opencv的基本数据类型是很有帮助的。


#include &quot;opencv2/highgui.hpp&quot;
#include &quot;opencv2/imgproc.hpp&quot;
#include &amp;lt;iostream&amp;gt;

using namespace cv;
using namespace std;

void drawTe...]]></description><category></category></item><item><title><![CDATA[goodFeaturesToTrack & cornerHarris]]></title><link>https://blog.youkuaiyun.com/javababy3/article/details/80297368</link><guid>https://blog.youkuaiyun.com/javababy3/article/details/80297368</guid><author>javababy3</author><pubDate>Tue, 01 Jan 2019 21:23:09 +0800</pubDate><description><![CDATA[好不容易元旦两天假，学习了一下goodFeaturesToTrack 和 cornerHarris的使用。


#include &quot;pch.h&quot;
#include &quot;opencv2/highgui.hpp&quot;
#include &quot;opencv2/imgproc.hpp&quot;
#include &amp;lt;iostream&amp;gt;

using namespace cv;
using namespace st...]]></description><category></category></item><item><title><![CDATA[K-means]]></title><link>https://blog.youkuaiyun.com/javababy3/article/details/80297375</link><guid>https://blog.youkuaiyun.com/javababy3/article/details/80297375</guid><author>javababy3</author><pubDate>Thu, 27 Dec 2018 23:49:09 +0800</pubDate><description><![CDATA[Kmeans又是一个以点到点距离为判断依据的算法，物理上的质心很好的形容了这个算法的目的。

说的没有做的理解深，还是实践一下。


#include &quot;pch.h&quot;
#include &amp;lt;opencv2/core.hpp&amp;gt;
#include &amp;lt;opencv2/imgproc.hpp&amp;gt;
#include &quot;opencv2/imgcodecs.hpp&quot;
#include &amp;lt...]]></description><category></category></item><item><title><![CDATA[人脸检测]]></title><link>https://blog.youkuaiyun.com/javababy3/article/details/53128965</link><guid>https://blog.youkuaiyun.com/javababy3/article/details/53128965</guid><author>javababy3</author><pubDate>Sun, 23 Dec 2018 20:11:21 +0800</pubDate><description><![CDATA[人脸检测在生活中已经随处可见，今天使用opencv来实践一番。


void example_face_dectect(cv::Mat &amp;amp;image, cv::CascadeClassifier faceCascade, cv::CascadeClassifier  eyeCascade) {
	std::vector&amp;lt;cv::Rect&amp;gt; faces;
	std::vector...]]></description><category></category></item><item><title><![CDATA[visual studio 配置opencv]]></title><link>https://blog.youkuaiyun.com/javababy3/article/details/80297357</link><guid>https://blog.youkuaiyun.com/javababy3/article/details/80297357</guid><author>javababy3</author><pubDate>Sun, 23 Dec 2018 12:34:10 +0800</pubDate><description><![CDATA[1.添加环境变量



2.创建项目后新建一个属性表



3.双击创建的属性表，添加引用





4.后续新项目直接导入这个创建的属性表即可。]]></description><category></category></item><item><title><![CDATA[blur & filter]]></title><link>https://blog.youkuaiyun.com/javababy3/article/details/80297370</link><guid>https://blog.youkuaiyun.com/javababy3/article/details/80297370</guid><author>javababy3</author><pubDate>Sat, 22 Dec 2018 14:07:56 +0800</pubDate><description><![CDATA[理解：

模糊就是让图像变的平滑，平滑到极致图片就变成了一个色块。

锐化就是增加色彩的对比度，对比到极致图片就变成了很多色块。

实践：


void example_blur(const cv::Mat &amp;amp;image) {
	cv::Mat out;
	cv::namedWindow(&quot;example_blur&quot;, cv::WINDOW_AUTOSIZE);
	cv::Gaussian...]]></description><category></category></item><item><title><![CDATA[Support Vector Machines (SVM) 支持向量机]]></title><link>https://blog.youkuaiyun.com/javababy3/article/details/80297369</link><guid>https://blog.youkuaiyun.com/javababy3/article/details/80297369</guid><author>javababy3</author><pubDate>Thu, 20 Dec 2018 00:56:21 +0800</pubDate><description><![CDATA[理解

1.分割：二维平面上存在两类点，有多条线可以分割两类点，哪条线最优？

2.最优：所有点到直线的距离中找到最小值，使这个最小值最大化的那条线。

（即所有点到线A的距离中找到最短距离AL,再有所有点到线B的距离中找到最短距离BL，AL和BL谁更长则更优。

假设平面上只有两个点，是不是刚好就是两个点正中间且与两个点连线垂直的那条线呢？）

3.线性分割：就是用一条直线或一个平面可以进行分割...]]></description><category></category></item><item><title><![CDATA[i2c]]></title><link>https://blog.youkuaiyun.com/javababy3/article/details/80297327</link><guid>https://blog.youkuaiyun.com/javababy3/article/details/80297327</guid><author>javababy3</author><pubDate>Sat, 08 Dec 2018 23:30:42 +0800</pubDate><description><![CDATA[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...]]></description><category></category></item><item><title><![CDATA[tasklet & workqueue]]></title><link>https://blog.youkuaiyun.com/javababy3/article/details/80297394</link><guid>https://blog.youkuaiyun.com/javababy3/article/details/80297394</guid><author>javababy3</author><pubDate>Mon, 26 Nov 2018 22:37:35 +0800</pubDate><description><![CDATA[为了提升内核的响应速度，中断处理往往会分成上半部和下半部来执行。

上半部在中断处理函数中处理少量事物并激活下半部，一般通过tasklet 或 workqueue 来实现。

workqueue 参考：


void workqueue_func(struct work_struct *work)  // 下半部执行函数
{
	printk(&quot;workqueue bottom half\n&quot;); ...]]></description><category></category></item><item><title><![CDATA[Linux input subsystem]]></title><link>https://blog.youkuaiyun.com/javababy3/article/details/78163488</link><guid>https://blog.youkuaiyun.com/javababy3/article/details/78163488</guid><author>javababy3</author><pubDate>Sun, 25 Nov 2018 22:47:09 +0800</pubDate><description><![CDATA[最近学习了一下Linux的输入子系统编程，做个记录。

简单分为3个部分，一是注册输入设备和键值，二是gpio的配置和申请，最后是中断来临后键值的上报流程。

linux设备的注册都是固定套路，主要区别还是在于硬件平台的不同需要做不同的处理。


static struct input_dev *key_dev;

static irqreturn_t key_interrupt(int irq,...]]></description><category></category></item><item><title><![CDATA[NASA 顶级程序员是如何编程的？这里有十大准则]]></title><link>https://blog.youkuaiyun.com/javababy3/article/details/78566166</link><guid>https://blog.youkuaiyun.com/javababy3/article/details/78566166</guid><author>javababy3</author><pubDate>Fri, 17 Nov 2017 23:40:50 +0800</pubDate><description><![CDATA[转自：http://blog.youkuaiyun.com/csdnnews/article/details/78527530

NASA 的十大编码准则：

1、简化控制流程：使用尽可能精简的控制流程构造编写程序 – 不要使用 setjmp 或 longjmp 构造、goto 语句，以及直接或间接的递归调用。

2、为循环使用固定次数上限：所有的循环必须有一个固定的上限。 必须可以被某个检测工具]]></description><category></category></item><item><title><![CDATA[socket]]></title><link>https://blog.youkuaiyun.com/javababy3/article/details/78178563</link><guid>https://blog.youkuaiyun.com/javababy3/article/details/78178563</guid><author>javababy3</author><pubDate>Sun, 08 Oct 2017 23:37:23 +0800</pubDate><description><![CDATA[1.socket是一个常用的网络通信API，今天就学习一下多线程配合socket进行通信。
服务端server.c

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

#define SERVERPORT     9009
#define BACKLOG     10
#defin]]></description><category></category></item><item><title><![CDATA[poll  & epoll & select]]></title><link>https://blog.youkuaiyun.com/javababy3/article/details/78069683</link><guid>https://blog.youkuaiyun.com/javababy3/article/details/78069683</guid><author>javababy3</author><pubDate>Sat, 23 Sep 2017 11:24:21 +0800</pubDate><description><![CDATA[select,poll,epoll都是常见的多路复用阻塞函数





       #include 

       int poll(struct pollfd fds[], nfds_t nfds, int timeout);

       #include 

       int select(int nfds, fd_set *restrict readfds,]]></description><category></category></item><item><title><![CDATA[sem_wait & sem_post]]></title><link>https://blog.youkuaiyun.com/javababy3/article/details/78067378</link><guid>https://blog.youkuaiyun.com/javababy3/article/details/78067378</guid><author>javababy3</author><pubDate>Fri, 22 Sep 2017 22:00:40 +0800</pubDate><description><![CDATA[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]]></description><category></category></item><item><title><![CDATA[signal]]></title><link>https://blog.youkuaiyun.com/javababy3/article/details/78057994</link><guid>https://blog.youkuaiyun.com/javababy3/article/details/78057994</guid><author>javababy3</author><pubDate>Thu, 21 Sep 2017 23:01:05 +0800</pubDate><description><![CDATA[signal 是一种类似于中断的软处理机制，今天就来熟悉一下signal和sigaction的使用。
#include 
#include 
#include 
#include 

typedef void (*sighandler_t)(int);

static void sig1(int sig)
{
    printf("sig1=%d\n", sig);
    alarm(1);]]></description><category></category></item><item><title><![CDATA[time的使用]]></title><link>https://blog.youkuaiyun.com/javababy3/article/details/78025439</link><guid>https://blog.youkuaiyun.com/javababy3/article/details/78025439</guid><author>javababy3</author><pubDate>Tue, 19 Sep 2017 00:22:38 +0800</pubDate><description><![CDATA[时间函数使用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)]]></description><category></category></item><item><title><![CDATA[pthread使用]]></title><link>https://blog.youkuaiyun.com/javababy3/article/details/78014726</link><guid>https://blog.youkuaiyun.com/javababy3/article/details/78014726</guid><author>javababy3</author><pubDate>Sun, 17 Sep 2017 23:37:55 +0800</pubDate><description><![CDATA[简单实现主线程与子线程之间的同步]]></description><category></category></item><item><title><![CDATA[sublime 安装配置]]></title><link>https://blog.youkuaiyun.com/javababy3/article/details/78002823</link><guid>https://blog.youkuaiyun.com/javababy3/article/details/78002823</guid><author>javababy3</author><pubDate>Sat, 16 Sep 2017 13:14:55 +0800</pubDate><description><![CDATA[每次重装系统或者啥意外情况就导致编辑器要重新配置，保存下来方便以后使用
{
	"draw_white_space": "all",   //显示空格
	"font_size": 15,
	"highlight_modified_tabs": true,
	"ignored_packages":
	[
		"Vintage"
	],
	"line_padding_bottom": 2,
	"lin]]></description><category></category></item></channel></rss>