- 博客(48)
- 资源 (35)
- 收藏
- 关注
原创 Linux头文件
#include 是在linux-2.6.29/include/linux下面寻找源文件。#include 是在linux-2.6.29/arch/arm/include/asm下面寻找源文件。#include 是在linux-2.6.29/arch/arm/mach-s3c2410/include/mach下面寻找源文件。#includelinux-2.6.31_
2014-04-17 16:24:18
1000
原创 Linux设备驱动模型之Kobject
Sysfs文件系统(Linux2.6) 基于RAM的文件系统,与proc系统类似(不存在本地磁盘,掉电易失),对应Linux系统下的/sys目录。该文件系统的说明可参考Linux内核源码Documentation/filesystems/sysfs.txt文档。该文档中对其功能叙述为:sysfs is a ram-based filesystem initially based on
2014-04-17 00:04:25
973
原创 RGB转YUV422
#define GetY(R,G,B) (0.257*(R)+0.504*(G)+0.98*(B)+16)#define GetU(R,G,B) (0.148*(R)-0.291*(G)+0.439*(B)+128)#define GetV(R,G,B) (0.439*(R)-0.368*(G)-0.071*(B)+128)
2014-04-12 09:13:21
9146
1
原创 面试经典算法3之选择排序
选择排序:每一趟从待排序的数据元素中选出最小(或最大)的一个元素,放在已排好序的数列的最后,直到全部待排序的数据元素排完。它是一种不稳定的排序方法。选择排序前半部分逐渐有序,每趟是从待排序的数据元素位置开始扫描。典型的选择排序算法:(1) 直接选择排序(2) 堆排序直接选择排序代码://简单选择排序bool SelectSort1(int A[],int n){ if
2013-09-09 19:13:35
839
原创 面试经典算法2之插入排序
插入排序:将待排序的数据元素与前面已经排好序的数据比较,将其插入到其中。每趟都是从待排序的数据元素开始扫描。典型的插入排序算法有:(1) 简单直接插入排序(2) 希尔排序简单直接插入排序代码:bool InsertSort(int A[],int n){ if (A==NULL||n<0) { printf("Parameter for function Insert
2013-09-09 19:01:59
1026
原创 面试经典算法1之交换排序
交换排序:每一趟总是两两比较相邻数据元素,如果反序,则将两者交换。直到没有反序的为止。交换排序,后半部分逐渐有序,每趟都是从第一个元素开始扫描。
2013-09-09 16:04:06
862
原创 TCP连接三次握手详解
服务器端,通过调用socket、bind、listen等待客户端的连接。② 客户端调用socket后,调用connect主动连接,它向服务器发送一个连接请 求报文段,该报文段中TCP首部中的同步位SYN(Synchronize)=1,同时选择 一个初始序列号seq=J,一般来说,SYN连接请求报文段不携带数据,只包 含一个IP头部、TCP头部及可能有的TCP选项信息。但是,它要消耗一个 序列号。然后客户端进程进入SYN_SENT(同步已发送)状态。③ 服务器端进程接收到客户端的SYN连接请求报文段后
2013-09-04 18:07:45
779
原创 openCV之cvSmooth高斯滤波器
函数原型:void cvSmooth( const CvArr* src, CvArr* dst,int smoothtype=CV_GAUSSIAN, int param1, int param2, double param3, double param4 );
2013-08-31 21:16:26
1537
转载 成为IT精英,我奋斗7年
成为IT精英,我奋斗7年这些日子 我一直在写一个实时操作系统内核,已有小成了,等写完我会全部公开,希望能够为国内IT的发展尽自己一份微薄的力量。最近看到很多学生朋友和我当年一样没 有方向 ,所以把我的经历写出来与大家共勉,希望能给刚如行的朋友们一点点帮助。 一转眼我在IT行业学习工作已经七年多了,这期间我做过网页,写过MIS、数据库,应用程序,做过通信软件、硬件驱动、协议栈,到现在做操作系
2013-08-26 23:12:16
1316
转载 程序人生
程序人生你要是天天一大早六点起床,刷牙洗脸,吃顿早点,7点不到就去挤地铁公交,使劲的小心不被挤成饼。9点就老老实实的坐在办公室里打开电脑,望着领导。中午一个小时吃饭,半个小时睡午觉。晚上无偿加班到9点10点,周六还必须无薪上班。如果你还梦想着有一天可以进入Google,Facebook什么的,周日就别放假,多写代码,多看书,你还有个鬼空去迷茫,去忧伤啊,去寂寞啊!你要是想到以后吃不起肉
2013-08-26 22:57:36
827
原创 均值滤波
图片边缘也处理的代码:void MeanFilter(unsigned char *pImg,int width,int height,int kernel){ //卷积核为奇数 if (pImg==NULL||width<=0||height<=0||kernel<=0||kernel%2==0) { printf("The arguments send to function
2013-08-01 11:35:34
955
原创 补码问题
,正数原码:最高位符号位为0。负数原码:最高位符号位为1,其余位为其对应正数的原码位。6的原码: 0000 0110-6的原码:1000 0110正数反码:与原码一样。负数反码:符号位不变,其余为取反。6的反码: 0000 0110-6的反码:1111 1001正数补码: 与原码相同。负数补码: 其反码加1。6的补码: 0000 0110-6的补码:
2013-07-29 19:53:12
1711
原创 数组作为函数实参
数组作为函数实参:C语言中数组作为函数实参时,编译器总是将其解析为指向数组首元素地址的指针(地址调用)原因:我们知道C语言函数的调用有传值和传地址调用。假设C语言对数组采用传值调用(对实参作一份拷贝,传递给被调用函数,函数不能修改实际实参值,而只能改变其拷贝),然后如果拷贝整个数组,则在时间和空间上开销都非常大。而对于函数,只要知道实参数组的首元素的地址,照样可以访问整个数组,所以采用传址
2013-07-28 23:30:31
14088
原创 图像二直化之一种快速自适应图像二值化算法(Wellner 1993)
A fast adaptive image binarization method (Wellner 1993)该算法的英文介绍可看:http://www.idevlife.com/24638/原文下载地址:不过好像下不下来了。http://www.xrce.xerox.com/Publications/Attachments/1993-110/EPC-1993-110.pdf该算
2013-07-13 20:32:09
5301
原创 无符号数与有符号数比较
问题源于一天在群里看到别人问的一个问题:题目1:unsigned int a = -1;char b = -1;printf("%d\n",a==b);输出:?题目2:unsigned short a = -1;char b = -1;printf("%d\n",a==b);输出:?总有些人不加思索的说,这么简单的题,肯定不会相等了。咋一看,确实
2013-07-13 20:16:16
1142
原创 内存对齐问题
对于32位机器,寄存器是32位的,有32根数据线,而内存是按8位编址的,即一个内存单元是8位的。CPU读内存中数据时是一次读32位的即一次读连续4个地址的数据。你可能就会疑问了,像short类型数据占2个字节,假如有一个short型变量a存在地址0x02、0x03中,那CPU怎么读a呢,其实CPU会一次性读从0x00~0x03四个地址中的数据,然后将0x00、0x01中的数据“剔除”掉。好,你可能
2013-06-30 20:23:22
668
原创 栈的应用之括号匹配
括号匹配问题:给你一串字符串,判断其中的括号是否匹配,如下几种情况:(1) adaf[jskdf]jjkl(121)mksfsdl{} 匹配(2) nkdksl(djlk[12njs{232332jn}]) 匹配(3) 6237[jjsfj(kk222]jn23d) 不匹配(4) ]121ndsfs[jfksfs
2013-06-30 12:30:45
952
原创 WPS文本框跨页显示方法
鼠标放在第一个文本框边界,然后右键,选择“创建文本框链接”,则鼠标指针变为罐状指针,用罐状指针单击第二个文本框边界,则在两个文本框间建立了链接(注意的是第二个文本框要是空的)。如果还想链接第三个文本框,请单击第二个文本框,采用同样方法创建链接即可。
2013-06-29 11:32:08
16459
1
原创 字符串模式匹配之朴素匹配法
代码:#include #include int PatternMatch(char *str,char *pat);void main(){ char str1[]="121312adsdfcsfdf8973dsfsd"; char pat[]="dsfsd"; int x = PatternMatch(str1,pat); printf("%d\n",x);
2013-06-07 22:00:18
1174
原创 字符串子串的插入
今天看Ellics Horowitz的中的子串的插入函数:void strnins(char *s,char *t,int i){ char str[MAX_SIZE],*temp = str; if (istrlen(s)) { fprintf(stderr,"Poisiton is out of bounds\n"); exit(1); } if (!strlen
2013-06-07 20:24:54
3859
原创 排序之冒泡排序、选择排序、插入排序
代码:#include void BubbleSort(int A[],int n);void PrintArray(int A[],int n);#define NUM 10void main(){ int a[NUM]; for (int i=0;i<NUM;i++) { a[i]=i+1; } BubbleSort(a,NUM); Print
2013-06-07 17:57:57
613
原创 数组逆转
代码:#include void ReverseArray(int A[],int n);void PrintArray(int A[],int n);#define NUM 10void main(){ int a[NUM]; for (int i=0;i<NUM;i++) { a[i]=i+1; } ReverseArray(a,NUM); P
2013-06-07 17:22:50
1862
原创 图像缩放之双线性插值算法
代码:#include "stdafx.h"#include#includevoid main(int argc, char * argv[]){ printf("%s\n",argv[1]); IplImage *pSrcImg = cvLoadImage(argv[1],CV_LOAD_IMAGE_COLOR); if(!pSrcImg) { printf(
2013-06-07 14:12:31
2159
原创 图像缩放之最近邻插值
基于OpenCV的代码:#include "stdafx.h"#include#includevoid main(int argc, char * argv[]){ printf("%s\n",argv[1]); IplImage *pSrcGrayImg = cvLoadImage(argv[1],CV_LOAD_IMAGE_GRAYSCALE); if(!pSrc
2013-05-22 20:54:19
1425
原创 基于PCA的人脸识别算法
pdf文档下载地址:http://pan.baidu.com/share/link?shareid=2037347863&uk=4213349809
2013-05-18 10:43:20
1072
原创 利用OpenCV对图像旋转
做车牌识别时,要对定位出来的车牌进行字符校正,字符校正可采用如下方法:对图像进行灰度化,然后对其进行边缘提取,再在1到180度角内对图像进行旋转,记录下边缘提取后的图像在x轴方向上的投影,当x轴方向上的投影最小的时候即表示图像中字符平行于y轴,已经完成矫正,此时记录下旋转的倾斜角。然后再对图像旋转即可。以下为对图像旋转代码:#include "cv.h"#include "highg
2013-05-17 14:05:46
1762
原创 图像二值化阈值选取常用方法
最近在公司搞车牌识别的项目,车牌定位后,发现对车牌区域二值化的好坏直接影响后面字符切分的过程,所以就想把常用阈值选取方法做一个总结。图像二值化阈值选取常用方法:1. 双峰法。2. P参数法。3. 最大类间方差法(Otsu、大津法)。4. 最大熵阈值法。5. 迭代法(最佳阈值法)。本文档主要介绍了上述五种方法外,还简单介绍了基于均匀性度量的方法和基于聚类的方法。
2013-05-03 17:07:50
7976
3
原创 数组字符串常量的存储
首先来看两段代码:代码1:#includeint main(){ char str[]="12345"; str[2]='A'; return 0;}代码2:#includeint main(){ char *p ="12345"; p[2] = 'A'; return 0;}两段代码都能编译通过,但是代码2执行时会报错。其实,其报错的原因很
2013-04-27 23:56:54
919
原创 C语言指针和数组
今天突然发现了个奇怪的问题,下面这段代码竟然输出的值都是一样的,代码如下:#includevoid main(){ char a[10]="012345678"; printf("%d\n",&a[0]); printf("%d\n",a); printf("%d\n",&a);}第一个和第二个printf语句输出地址一样的,能很好理解,但第三个竟然与第二个一样,我就迷茫了
2013-04-27 23:37:41
596
原创 比较好的网站
1.http://www.aforgenet.com/ 一个机器视觉、图像处理、人工智能、神经网络、机器学习、遗传算法等C#实现的框架。2.http://yann.lecun.com/exdb/mnist/ 手写字体识别3.http://deeplearning.net/ 深度学习4.http://www.openni.org/5.http://www.cvchina.i
2013-04-27 14:28:42
958
原创 OpenCV各个lib库的作用
opencv_core :core函数库(基本的数据结构,架构和线性代数,DFT,xml 和yam i/o接口 函数等) opencv_imgproc :-图像处理函数库(滤波,高斯模糊,形态学膨胀/腐蚀,线性缩放图像大 小,图像几何变化,颜色结构变化,计算直方图等)opencv_highgui :GUI,图像和视频窗口函数库opencv_ml :统计机器学习模型函数库(SVM
2013-04-25 20:58:14
4656
原创 Linux应用编程之Socket编程
什么是SocketSocket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。要学Internet上的TCP/IP网络编程,必须理解Socket接口。Socket接口设计者最先是将接口放在Unix操作系统里面的。如果了解Unix系统的输入和输出的话,就很容易了解Socket了。网络的 Socket数据传输是一种特殊的
2013-04-24 22:50:57
749
原创 VC获取应用程序路径
在项目中经常要用到配置文件或日志文件,而这些文件通常和应用程序放在同一目录中,所以必须得到当前执行应用程序的目录。方法一:GetCurrentDirectory() 函数,其原型如下:DWORD GetCurrentDirectory(DWORD nBufferLength, // size of directory bufferLPTSTR lpBuffer // direc
2013-04-24 22:30:14
1014
原创 Word、WPS实现代码语法高亮
1、安装Notepad++ 下载地址:http://www.notepad-plus-plus.org/2、安装插件NppExport,一般情况安装完Notepad++,该插件默认安装了。 以下为该插件的说明: 3、Notepad++编辑或打开代码,选中代码,然后选择“插件——NppExport——Copy RTF to clipboard”标签。4、粘贴至Wo
2013-04-20 20:05:07
2879
原创 C/C++之const关键字
1.const修饰常量功能与#define相同。#define MAX 10;const int MAX = 10;但相比于使用#define定义的宏常量,const常量有数据类型,编译器会对其进行 数据类型检查,而宏常量只是简单的字符替换,编译器不会对其进行数据类型检查。在另一个文件中引用const常量:extern const int MAX; //正确,MA
2013-04-05 23:07:20
556
原创 LAB颜色空间
Lab颜色空间中的L分量用于表示像素的亮度,取值范围是[0,100],表示从纯黑到纯白;a表示从红色到绿色的范围,取值范围是[127,-128];b表示从黄色到蓝色的范围,取值范围是[127,-128]。下图所示为Lab颜色空间的图示;在计算机视觉中,主要用于颜色识别相关的算法中,如监控视频偏色检测算法中。
2013-03-02 11:15:56
5921
原创 Hough变换(openCV的cvHoughLines2)
cvHoughLines2功能:利用Hough变换在二值图像中寻找直线。函数原型: CvSeq* cvHonghLines2(CvArr* image,void* line_storage,int mehtod,double rho,double theta,int threshold,double param1 =0,double param2 =0);参数说明:
2013-01-30 10:58:37
33217
1
原创 Hough变换(自己写的)
自己写的简单Hough变换用于检测直线的代码,主要用于更好的理解基于概率的Hough变换的原理。#include #include #include #define PI 3.14typedef struct { int leftx; int lefty; int rightx; int righty;}Line;/*Houth Transform use
2013-01-25 16:25:32
2879
原创 第十一章 内核数据类型
Attenton:将linux 移植到新的体系架构时,开发者遇到的若干问题都与不正确的数据类型有关。坚持使用严格的数据类型且使用 -Wall -Wstrict-prototypes 进行编译可以避免大部分的代码缺陷。内核数据使用的数据类型主要分为 3 个类型: 标准 C 语言类型、确定大小的类型和特定内核对象的类型。标准C语言类型当需要“一个2字节填充符”或“用一个4字节字
2012-10-21 15:06:31
555
数据库课程设计----人力资源管理系统
2010-05-31
数据结构课程设计 二叉排序树与平衡二叉排序树
2010-05-29
很详细的注册表教程.chm
2010-05-29
dos入门及常用命令汇总.chm
2010-05-29
生产管理系统课程设计论文
2010-05-29
计算机考研参考书选择
2010-03-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人