- 博客(56)
- 资源 (5)
- 收藏
- 关注
原创 外部排序-合并排序
定义省略:code:#include void MergeTwo(int *src, int *dst, int left, int middle, int n){ int i, j, k, t; i = left; k = left; j = middle + 1; while ( (i <= middle) && (j <= n) ) { if
2015-11-29 17:32:53 693
原创 内部排序-插入排序-二叉树排序法
思想主要是:利用要排序的数据构造二叉树,然后再中序遍历二叉树即可。方法简单,但是简历的二叉树歪斜程度较大。时间复杂度O(nlogn), 受树的高度影响。空间复杂度为O(n), 比较耗费空间。#include "stdafx.h"#include void binary_tree(int *btree, int *list, int len){ int i; in
2015-11-26 21:43:55 880 1
原创 内部排序-插入排序-希尔排序
直接上code吧#include "stdafx.h"#include #include #include void shell_sort(int *list, int len);int _tmain(int argc, _TCHAR* argv[]){ int list[] = { 3, 87, 4, 3, 5, 65, 88, 92, 1, 32, 11, 44, 36,
2015-11-26 17:19:59 506
原创 内部排序-插入式排序
将要排序的元素通过插入的方式找到其适当的位置来进行排序。直接上code吧int g_counter1 = 0;int g_counter2 = 0;void insert_sort(int *list, int len){ int i, j, k; int temp; for(i = 1; i < len; i++) { temp = list[i]; for (j
2015-11-25 20:30:42 694
原创 内部排序-交换式排序-选择排序
选择排序第一步:选择,既按照指定的规则选择出一个元素第二部: 将选择出的元素和其他元素交换,在剩下的元素中循环进行。#include void select_sort(int *list, int len);int main(int argc, char* argv[]){ int list[20] = {0}; int i, index; int list1
2015-11-24 21:15:59 449
转载 走进结构体存储--位域
http://www.cnblogs.com/pure/archive/2013/04/22/3034818.htmlhttp://blog.csdn.net/sjin_1314/article/details/86830081、位域简介 在嵌入式编程中,经常会遇到下面的结构:[csharp] view plaincopyprint?
2015-11-24 14:17:34 847
原创 struct 位域
//直接上code吧位域的作用就是像操作变量一样来操作bit位,常用于嵌入式编程中,来达到较少存储空间使用的目的。#include #include int main(void){ struct bs { unsigned char a: 1; unsigned char b: 3; unsigned char c: 4; unsigned char d: 1;
2015-11-24 10:12:23 6444
原创 图像视频防抖
视频防抖该项技术关键字挺多的,但作用都是去除视频拍摄过程中轻微抖动造成的图像模糊。Anti-Shake,Shake-proof, imagestabilization都是这个意思,image stabilization是由canon最先开始这么称呼的,Anti-shake更通用一点。该项技术分为两大类,镜头防抖和电子防抖。做镜头技术牛的公司喜欢搞这个,像canon.更经济通用的方法
2015-11-18 15:52:07 19260 2
原创 AVClass和AVOption
简单介绍下:AVClass像一个桥梁一样,一头连接着context一头连接着AVOption。AVOption 存储着一些信息,变量名字,变量的简单介绍,偏移长度,类型,默认值,最小值,最大值,等。利用Option机制,可以通过名字在外部访问内存中的变量内容。很方便。草图如下:注意:AVClass必须是Context的第一个变量。在外部可以通过av_opt_set/
2015-11-16 16:32:25 7020
原创 图像彩色空间
RGB颜色空间在计算机技术中使用最广泛的颜色空间是RGB颜色空间,它是一种与人的视觉系统结构密切相关的模型。根据人眼睛的结构,所有的颜色都可以看成三个基本颜色-红色(red)、绿色(green)和蓝色(blue)的不同组合,大部分显示器都采用这种颜色模型。对一幅三通道彩色数字图像C,对每个图像像素(x,y),需要指出三个矢量分量R、G、B;RGB对应到显示器的三个刺激值,组成三维正
2015-11-12 21:56:31 22157
原创 Bayer图像的由来及Opencv preview
首先来介绍一下关于相机的基础知识:1.CCD/CMOS相机的感光元件对波长(即颜色)不敏感,如果拿一个裸体的CCD/CMOS传感器去拍摄图像,只能得到灰度图;2.因为上述这条,人们必须找到能够将波长区分开的方法,其中一种是使用三个滤光片(通常是RGB三色),在这三个滤光片之后放置三个CCD,这就是3CCD相机;显然上一种方法的成本太高了,聪明的人类又想到了另一个方法:那就是
2015-11-12 21:31:31 9647
原创 python+opencv实操-图像基本操作
直接上code吧,暂记于此。from PIL import Image #导入图像库中的Imagefrom pylab import *pil_im_rgb = Image.open('e:\PC.jpg')pil_im_rgb.show()#(1)转化为灰度图像pil_im_gray = Image.open('e
2015-11-12 17:17:43 6606
原创 零长度数组解析
接触了linux编程之后,经常会遇到一个很诡异的零长度数组,今天决定深挖一下。Struct command { Int domain; Int length; Char bytes[0];//也可以写成char bytes[];}在某一结构末尾如定义类似 char bytes[0] 的零长度数组,表示该结构不定长,可通过数组的方式进行扩展。结构中必包含一个
2015-11-09 19:53:11 6686
原创 快速判断两个矩形是否相交
两个矩形之间的位置关系无外乎图中的5中case.难道我们要每个case都要判断一边,然后决定是否相交?其实是有通用方法的。如果两个矩形相交,那么矩形A B的中心点和矩形的边长是有一定关系的。Case 2345中,两个中心点间的距离肯定小于AB边长和的一半。Case 1中就像等了。设A[x01,y01,x02,y02] B[x11,y11,x12
2015-11-09 16:26:11 43336 10
原创 将二进制字符串转换为二进制数据
例如将字符串“01000001”转为0x41, 如果字符串不是8的整数倍,二进制地位补0。#include #include void str_bin_to_u8(const char *str, int len, unsigned char *data){ int i = 0; unsigned char and_bit[] = {0x7F, 0xBF, 0xDF, 0xEF, 0x
2015-11-07 11:34:22 9476
原创 图像质量评价--SSIM
SSIM 全称为structural similarity (SSIM) indexmeasurement system。是一种衡量两幅图像相似度的指标,其取值范围为[0,1],值越大越好;构相似性理论认为,图像是高度结构化的,即像素间有很强的相关性,特别是空域中最接近的像素,这种相关性蕴含着视觉场景中物体结构的重要信息;作为结构相似性理论的实现,结构相似度指数从图像组成的角度将结构信
2015-11-06 10:45:47 16586
转载 ffmpeg AV转换常用命令
帖子比较长,建议Ctrl+D bookmark一下,或者提交到别的什么Social bookmark sites,不想看mencoder/ffmpeg详细技术手册的,可以把它当快速简易参考看,主要的功能有:视频格式转换 音频格式转换 切割视频及音频 连接两段视频 视频音频同步 将图像系列转换成视频 这里是百鬼丸以前收集的一部分命令行视频音频编辑脚本命令,一直在自己的记事
2015-11-03 18:42:04 1020
原创 华为2014校园招聘的机试题目--字符串压缩
[html] view plaincopy难得有空,玩玩今年的面试题:p> p>p>9月5日,华为2014校园招聘的机试题目 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。 压缩规则: 1、仅压缩连续重复出现的字符。比如字符串"abcbc"由于无连续重复字符,压缩后的字
2015-11-03 18:00:52 6205
原创 静态变量详解
先看一个程序吧。#include "stdafx.h"#include "stdio.h"#include "iostream.h"int fun1(){ static int a1 = 5; a1++; return a1;}int fun2(){ static int a1 = 5; int a2 = 5; a2++; return a2;}int main(i
2015-11-03 17:59:27 6564
原创 输出一个句子中最长的单词
//输出一个句子中最长的单词,如果两个单词长度相等,输出后出现的单词#include "stdafx.h"#include "stdio.h"#include "string.h"int main(int argc, char* argv[]){ char str[100] = ""; printf("please input a sentece:"); gets(str)
2015-11-03 17:58:19 4876 1
原创 linux内核内存管理学习笔记
内存管理:物理地址出现在cpu外部地址总线上的寻址物理内存的地址信号线程地址虚拟地址在32位cpu架构下4G地址空间中的地址逻辑地址汇编中使用的地址 20位的虚拟地址如何存入16位的寄存器中呢分段方式来实现逻辑段的起始地址段地址必须是16的倍数,逻辑段的最大容量是64k物理地址 = 段地址+段内偏移量物理地址 = 段寄存器的值×16 + 逻辑地址
2015-11-03 17:51:28 6164
原创 linux内核模块开发笔记一
内核模块开发:如果将所有的组件都编译进内核,会造成内核文件过大,修改组件后,需要重新编译整个内核,效率比较低。内核模块就相当于补丁,在需要的时候才会起作用,模块本身不被编译进内核文件,在运行期间动态的添加和卸载。模块加载函数:安装内核模块时,内核模块加载函数被调用,通过module_init宏指定内核模块加载函数。模块卸载函数:卸载内核模块时,调用模块卸载函数,通过module
2015-11-03 17:50:46 6117
原创 linux驱动学习一
使硬件工作的软件叫做driver分为三大类:字符设备驱动,块设备驱动,网络驱动 主设备号:用来标识与设备文件相连的驱动程序。用来反映设备类型。次设备号:用来区分驱动程序操作的是哪个设备。用来区分同类型的设备。可以通过静态申请,动态分配两种方式来获取设备号。静态申请:找一个没用的设备号,用register_chrdev_region函数注册设备号,优点是比较简单,缺点是驱动多
2015-11-03 17:49:45 6345
原创 linux IPC 通信 study 四:SYSTEM_V消息队列
linux 消息队列 分为两个标准,分别为SystemV消息队列,POSIX消息队列SystemV消息队列
2015-11-03 17:45:20 6337
原创 linux IPC 通信 study 二:信号signal
信号是一种软中断,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。signal是ipc机制中唯一的异步通信机制。信号事件的发生有两个来源:硬件 比如键盘或者其他硬件故障。软件 比如一些系统函数 kill raise alarm 或者其他一些非法运算等操作。进程对信号的响应有
2015-11-03 17:42:25 6269
原创 linux IPC 通信 study 一:管道
linux 进程通信机制:分为基于system V 和posix。 常用的通信方式分为:(1) 管道pipe和命名管道fifo.(2) 信号signal(3) 信号量semphore(4) 消息队列 msg queue(5) 共享内存share memory(6) 套接字socket详解如下:1.1. 匿名管道通信pipe,它把一个进程的输入和另外一个进程的输出
2015-11-03 17:41:10 6248
原创 打印数字的二进制 利用数组输出大数据
#include "stdafx.h"#include #include "math.h"using namespace std;void printBinary(const unsigned char val) { for(int i = 7; i >= 0; i--) if(val & (1 std::cout
2015-11-03 17:29:57 6807
原创 多线程相关内核对象使用情况对比
主线程与子线程之间要进行同步访问公共变量,子线程之间要互斥的访问公共变量。如下列出几种常用的同步互斥方法。(1)关键段,criticalSection,可以用于线程间的互斥,不可以用于线程间同步,不能跨进程使用,有线程所有权,无需要处理“遗弃”问题。(2)互斥量,mutex, 也可以解决互斥问题,不能解决同步问题,可以跨进程使用,拥有线程所有权,无需要处理“遗弃”问
2015-11-03 17:22:20 6078
原创 linux线程异常保护
用多线程的时候要添加thread库, -lpthread创建线程 create_thread如果线程正常退出,不会存在问题。如果线程非正常退出,那么线程中申请的资源就不能正常释放,申请内存造成内存泄漏,锁和信号量等操作容易造成死锁。利用保护机制可以避免上述问题:pthread_cleanup_push();//要保护的操作pthread_cleanu
2015-11-03 17:20:46 7894
原创 git 学习笔记 一
一 安装apt-get install git-core二 基本应用1. git init: | 创建一个新的仓库。2. git clone: | clone 一个仓库。3. git config | 添加自己的帐号信息。git config --global user.name "yf123"git config --global us...
2015-11-03 17:17:19 460
原创 vim常用命令
H 或者 左箭头 光标向左移动一个字符J 或者 下箭头 光标向下移动一个字符K或者 上箭头 光标向上移动一个字符L 或者 右箭头 光标向右移动一个字符如果想多次移动的话,可以加数字如30j,则向下移动30个字符Ctrl+f 屏幕向下移动一页,相当于Page down
2015-11-03 17:13:04 5990
原创 vi常用命令
复制是把指定内容复制到内存的一块缓冲区中,而粘贴是把缓冲区中的内容粘贴到光标所在位置。复制和粘贴的方法如下。yw:将光标所在位置到字尾的字符复制到缓冲区中,y是yank的首字母。nyw:将光标所在位置开始的n个字复制到缓冲区中,n为数字。yb:从光标开始向左复制一个字。nyb:从光标开始向左复制n个字,n为数字。y0:复制从光标前一个字符到行首的所有字符。y$:复制从光
2015-11-03 17:12:23 6053
原创 网络TCP/UDP编程学习
Socket分为三种:1. SOCK_STREAM TCP2. SOCK_DGRAM UDP3. SOCK_RAW 基于IP协议,用于新的网络协议的测试。常用结构体:Struct sockaddr{ U_shortsa_family;//协议族,AF_XXXX Charsa_data[14]; //14字
2015-11-03 17:03:44 6126
git_ros_dep.zip
2020-05-14
show_uyvy422_using_PBO.zip
2019-10-29
hdrnet cvpr2017
2018-05-26
mp4文档及解码程序源码
2018-05-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人