- 博客(29)
- 资源 (3)
- 收藏
- 关注
原创 Gamma 校正
Gamma 校正是指更改 gamma 值以匹配监视器的中间灰度。Gamma 校正补偿了不同输出设备存在的颜色显示差异,从而使图像在不同的监视器上呈现出相同的效果。简单来说,就是提高低灰度值的区间,降低高灰度值的区间
2017-09-13 09:37:56
471
转载 Bayer Pattern
在之前的接触中,一直默认一张图片的每个像素点有RGB三个分量,那“RGGB Bayer Pattern”究竟是什么意思。在网上查找资料以后发现这其实也是非常简单的概念。以下内容大部分为翻译,结合“CCD工作原理教程(V1.2)”。1. 硬件上私以为对CCD的原理有大致了解可以帮助我们对Beyer Pattern有更好的了解。我们知道镜CCD(Charge-coupled Device)通过
2017-05-15 15:33:04
743
原创 linux i2c-dev 用户接口
内核模块加载i2c-dev模块,然后用户可以看到/dev/i2c-%d节点。用户可以操作这些节点对相应的i2c总线设备进行访问,发送相应的信号。其实这些节点就是i2c适配器驱动。使用i2c-tools工具包,里面封装了i2c总线驱动的接口,可以不用再写i2c设备驱动了。直接在用户空间打开适配器节点,发相应的信号。sudo apt-get install libi2c-devsu
2017-01-24 14:05:03
1253
转载 linux内核(kernel)版本号的意义
在linux下有一个目录,即/usr/src/kernels/目录,下面记载着一个linux系统的内核文件,例如:2.6.18-164.el5-x86_64、2.6.18-8.el5-x86_64和2.6.18-194.el5-x86_64等,这些文件编号意味着什么呢?例如2.6.18代表着什么?el5代表着什么?x86_64又代表着什么?linux内核版本的分类Linux内核版本有两
2017-01-21 22:18:40
1532
转载 Ubuntu 16.04 安装 JDK 和 Open Jdk
Ubuntu 16.04 安装 JDK 和 Open JdkUbuntu 16.04 安装 JDK 和 Open Jdk默认JDK 安装相对比较轻松,但如果想调整 OpenSdk 版本可就有点儿麻烦, 特别是 OpenJdk7 。常规安装 见这里java _install默认JDK 安装:sudo apt-get updatesudo apt-get install defa
2016-11-16 16:12:07
295
转载 Ubuntu16.04中文输入法安装
最近刚给笔记本装了Ubuntu+win10双系统,但是ubuntu16.04没有自带中文输入法,所以经过网上的一些经验搜索整合,分享一下安装中文输入法的心得。本文主要介绍了谷歌拼音跟ibus中文输入法的安装,由于ibus输入法问题较多,所以目前我用的是谷歌输入法。一.google pinyin的安装1.安装汉语语言包sudo apt-get install language-pack-
2016-11-16 11:52:28
776
原创 如何抽象数据类型
涉及到三个方面:数据对象数据关系基本操作接口====================================================填充数据对象阐述数据对象之间的关系提供对象操作的接口,比如插入,删除之类的
2016-11-11 16:32:24
312
原创 线性结构和非线性结构
线性结构是一个有序数据元素的集合。1.集合中必存在唯一的一个"第一个元素";2.集合中必存在唯一的一个"最后的元素";3.除最后元素之外,其它数据元素均有唯一的"后继";4.除第一元素之外,其它数据元素均有唯一的"前驱"。数据结构中线性结构指的是数据元素之间存在着“一对一”的线性关系的数据结构。如(a0,a1,a2,.....,an),a0为第一
2016-11-11 16:11:51
826
转载 云计算与大数据的关系
关于大数据和云计算的关系人们通常会有误解。而且也会把它们混起来说,一句话直白解释就是:云计算就是硬件资源的虚拟化;大数据就是海量数据的高效处理。有人把Hadoop理解为云计算,认为云计算只是数据分析, 对于云的概念有些人认为:就一个对历史海量数据的分析,不知道云具体还能做其他什么?aws应该算作一种典型的云计算服务实现吧,除了分析,其他方面能体现云计算的特点有哪些呢?其实这些可能对云计算了解的
2016-10-27 14:50:04
3923
转载 浅谈算法和数据结构(11):哈希表
原文出处: 寒江独钓 在前面的系列文章中,依次介绍了基于无序列表的顺序查找,基于有序数组的二分查找,平衡查找树,以及红黑树,下图是它们在平均以及最差情况下的时间复杂度:可以看到在时间复杂度上,红黑树在平均情况下插入,查找以及删除上都达到了lgN的时间复杂度。那么有没有查找效率更高的数据结构呢,答案就是本文接下来要介绍了散列表,也叫哈希表(Hash Table)
2016-10-21 16:47:20
1452
转载 为什么main方法是public static void?
Main方法是我们学习Java编程语言时知道的第一个方法,你是否曾经想过为什么main方法是public、static、void的。当然,很多人首先学的是C和C++,但是在Java中main方法与前者有些细微的不同,它不会返回任何值,为什么main方式是public、static、void,这篇文章尝试去找到一些答案。Main方法是Java程序的入口,记住,我们这里不会讨论Servlet、
2016-10-20 13:36:25
272
原创 public、private、protected-----java
public,protected,private是Java里用来定义成员的访问权限的,另外还有一种是“default”,也就是在成员前不加任何权限修饰符。如: public class A{ void method(){}; } method就属于default权限。 这四个修饰符的访问权限如下表: -------------------------
2016-10-20 11:37:55
217
原创 理解xml语法
上图表示下面的 XML 中的一本书: Everyday Italian Giada De Laurentiis 2005 30.00 Harry Potter J K. Rowling 2005 29.99 Learning XML Erik T. Ray 2003 39.95 例子中的根元素是 。文
2016-10-11 14:27:01
320
原创 xmlns是什么意思
xmlns是XML Namespaces的缩写,中文名称是XML(标准通用标记语言的子集)命名空间。 命名空间的语法如下: xmlns:[prefix]=”[url of name]” 其中“xmlns:”是必须的属性。“prefix”是命名空间的别名,它的值不能为xml。 Evening Batch
2016-10-11 11:47:21
4473
原创 线程安全和线程不安全
首先要明白线程的工作原理,jvm有一个main memory,而每个线程有自己的working memory,一个线程对一个variable进行操作时,都要在自己的working memory里面建立一个copy,操作完之后再写入main memory。多个线程同时操作同一个variable,就可能会出现不可预知的结果。根据上面的解释,很容易想出相应的scenario。 而用sy
2016-10-09 16:21:40
198
原创 printf、sprintf与fprintf 的用法区分
1: fprintf()#include int fprintf( FILE *stream, const char *format, ... );fprintf()函数根据指定的format(格式)发送信息(参数)到由stream(流)指定的文件.因此fprintf()可以使得信息输出到指定的文件.比如 char name[20] = "Mary"; FILE
2016-10-09 15:33:38
244
转载 fopen定义和用法
fopen() 函数打开文件或者 URL。如果打开失败,本函数返回 FALSE,在php中我们还可利用fopen来创建文件,只要带w+,w等参数。语法:fopen(filename,mode,include_path,context)参数描述filename必需。规定要打开的文件或 URL。mode必需。规定要求到该文
2016-10-09 15:31:09
797
原创 关于sprintf的一个小发现
最近在使用sprintf的时候,发现char TEST=130的时候,调用sprintf(temp, "%X", TEST)打印出来的是FFFFFF82,立刻就莫名其妙了,后来找到了原因,特记录下。因为spritnf 是个变参函数,除了前面两个参数之外,后面的参数都不是类型安全的,函数更没有办法仅仅通过一个“%X”就能得知当初函数调用前参数压栈时被压进来的到底是个4 字节的整数还是个2 字节的
2016-09-21 13:23:22
398
翻译 Android中使用线程
当你第一次启动一个Android程序的时候,一个被称为"main"的线程就被自动创建了。它被称为主线程或者UI线程,它是非常重要的因为负责分发事件给对应的widget,还包含画图的事件。主线程贯穿用户和Android widget的交互的整个过程。例如,你触摸了屏幕上的按钮(Button),UI线程派发(dispatch)触摸(touch)事件给widget,widget设置为按下状态并向事件队列
2016-08-31 10:03:51
226
原创 一个概念:内核控制路径嵌套
什么叫内核控制路径嵌套呢?可以这么理解吧:把内核比作控制模块,用户程序在用户态中执行,当发生中断的时候,进入内核态代码,内核会先保存用户的寄存器数据到内核中的堆栈,然后执行相关的处理流程,处理完再恢复寄存器数据,并恢复cpu到用户态。但是呢,假如cpu在内核态执行处理的时候,又过来了中断,这个时候就属于嵌套了。那处理流程是怎样的呢。一样的处理方式,先保存中断之前的寄存器的状态,处理,恢复到中断
2016-08-26 08:34:19
575
原创 环形缓冲区笔记
环形缓冲区其实就是数组 buf[len]1.空的时候w = r2.写:buf[w]=valw=(w+1)%len;3.读val=buf[r];r=(r+1)%len;4.满(w+1)%len=r
2016-08-16 15:48:05
363
翻译 Android 系统名字、版本、API level的对应关系
从官网上找到的,具体地址是:http://source.Android.com/source/build-numbers.htmlCode nameVersionAPI levelMarshmallow6.0API level 23Lollipop5.1
2016-07-29 11:54:45
673
原创 模糊控制里面隶属函数
在模糊控制理论中,经常提到隶属函数的问题,一直不是很明白。现在总结下。比如一个精确值-5,需要将这个值模糊化,你可说这个值是负大,或者负中、负小。。。这里面就涉及到一个隶属度的问题,到底这个数是归在哪个区域呢?隶属度表示这个数在每个区域的可能程度。
2016-07-19 11:33:57
7527
2
原创 二维数组与二级指针
void f(float **p){/* 想要在函数体中按二维数组的方式访问*/ p[1][1] = 0;//编译OK,运行出错(非法访问)}float **p; //其实这里的p并不是一个二维数组的指针,只不过是一个指向指针的指针像你这样访问肯定是会出问题的。例如:float a[2][2]={0,1,2,3};flo
2016-07-18 14:38:37
284
转载 论域
论域是一个数学系统,记作M,它由三部分组成:第一部分是一个非空元素集合M‘,M’包括M的基本元素。第二部分是一个M‘上的非空的函数集合,其中的每个函数以一个M'或者多个M'的笛卡尔积为定义域并以M’为值域。第三部分是一个关于M'的非空命题集合,每一个命题表示M‘的元素之间、函数之间以及元素与函数之间的逻辑关系。自然数系统N、有理数系统Q和实数系统R都是论域的典型例子。定义1:在一定文句
2016-07-15 08:44:58
7533
转载 C++中struct和class的区别
一、 C++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,它已经获取了太多的功能。 struct能包含成员函数吗? 能! struct能继承吗? 能!! struct能实现多态吗? 能!!! 最本质的一个区别就是默认的访问控制,体现在两个方
2016-07-13 11:37:10
222
原创 拉链法(链地址法)
当存储结构是链表时,多采用拉链法,用拉链法处理冲突的办法是:把具有相同散列地址的关键字(同义词)值放在同一个单链表中,称为同义词链表。有m个散列地址就有m个链表,同时用指针数组T[0..m-1]存放各个链表的头指针,凡是散列地址为i的记录都以结点方式插入到以T[i]为指针的单链表中。T中各分量的初值应为空指针。 例如,按上面例9.4所给的关键字序列,用拉链法构造散列表如图9.14所示。
2016-03-24 10:25:53
21210
3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人