代码改变世界

随笔档案-2011年12月

图像处理基本算法-滤波

2011-12-14 00:48 by libing64, 19187 阅读, 收藏,
摘要: 线性滤波器的向量表示:W是一个大小为m*n的滤波器的系数,Z为由滤波器覆盖的相应图像的灰度值。线性滤波器所能是实现的就是乘积求和操作。几种常见的滤波器:平滑空间滤波器如均值滤波统计排序滤波器如中值滤波锐化空间滤波器如锐化滤波1、 均值滤波均值滤波在去噪声的同时会有如下缺点:边界模糊效应明显细节丢失比较严重2、 中值滤波中值滤波在边界的保存方面优于均值滤波,是经常使用的一种滤波器,但是在模板逐渐变大时,依然会存在一定的边界模糊中值滤波对处理椒盐噪声非常有效,或者称为脉冲噪声。如果既想去除噪声,又极大的保存细节,此时应该考虑变形虫算法模板的大小是与周围的像素有关,模板随环境自动变化大小,这样在细节 阅读全文

图像处理基本算法-卷积和相关

2011-12-13 12:09 by libing64, 12334 阅读, 收藏,
摘要: 在执行线性空间滤波时,经常会遇到两个概念相关和卷积二者基本相似,在进行图像匹配是一个非常重要的方法。相关是滤波器模板移过图像并计算计算每个位置乘积之和的处理卷积的机理相似,但滤波器首先要旋转180度相关的计算步骤:(1)移动相关核的中心元素,使它位于输入图像待处理像素的正上方(2)将输入图像的像素值作为权重,乘以相关核(3)将上面各步得到的结果相加做为输出卷积的计算步骤:(1)卷积核绕自己的核心元素顺时针旋转180度(2)移动卷积核的中心元素,使它位于输入图像待处理像素的正上方(3)在旋转后的卷积核中,将输入图像的像素值作为权重相乘(4)第三步各结果的和做为该输入像素对应的输出像素超出边界时要 阅读全文

图像处理基本算法-直方图均衡

2011-12-13 00:00 by libing64, 638 阅读, 收藏,
摘要: 直方图是多种空间处理技术的基础,可以用于图像增强。同时在其他的处理方法中也十分有用,比如图像压缩和分割。基本的原理:Ni = 255*(N0 + N1 + N2 +……Ni)/(width*height)程序流程:1、统计各个像素值的个数2、建立映射表3、赋予新值处理后图像:源代码:#include<cv.h> #include<highgui.h> int main(){ IplImage * image; image = cvLoadImage("E:\\image\\pollen.jpg",0); cvNamedWindow("ima 阅读全文

图像处理基本算法-比特分层

2011-12-12 23:08 by libing64, 1157 阅读, 收藏,
摘要: 图像处理核心那是算法,至于使用OpenCV还是matlab还是MFC,现在看来真的都无所谓下面是对一张灰度图片进行比特分层,看一下一张图片的8bit共有几个bit是真正起作用的,这对以后的图像压缩具有很大的指导意义。matlab源码:A =imread('huidu.bmp') A1 = A subplot(3,3,1) imshow(A) for n = 1:8 for i = 1:256 for j = 1 :256 if(A(i,j) > 8*2^(n-1) && A(i,j) < 8*2^n ) A1(i,j) = A(... 阅读全文

图像处理基本算法

2011-12-12 22:17 by libing64, 730 阅读, 收藏,
摘要: 使用openCV进行图像处理,总感觉并不能真正的理解图像处理的核心内容,因此我感觉对图像处理的理解才是关键。基本的反色操作,主要是了解OpenCV对图像数据的操作方式:指针如下:unsigned char * ptr;//定义指针for(int i = 0 ;i < img->height;i++){ptr= (unsigned char*)img->imageData+ i*img->widthStep;//根据偏移获取数据for(int j = 0 ; j< img->width; j++){*(ptr+3*j) -= 20;*(ptr + 3* j+1 阅读全文

TQ2440按键

2011-12-10 21:54 by libing64, 253 阅读, 收藏,
摘要: LED对应的IO口为GPB的5678口按键对应的IO口为GPF的0123口平台:RealView MDK#include<S3C2440.h> void delay() //延时函数 { int i, j; for(i = 0; i < 10000; i ++) for(j = 0; j < 50; j ++); } int main() { unsigned long data; GPBCON = 0x155555; //配置protB的所有引脚为输出 GPFCON = 0x00; //配置GPF所有位为输入 while(1) { GPBDAT |= 0x1E0; / 阅读全文

大小写字母转换-汇编

2011-12-09 12:28 by libing64, 1570 阅读, 收藏,
摘要: 汇编语言中一般的格式为:1、定义数据段和代码段2、确认数据段和代码段,但是并未指明数据段的地址3、程序一开始先指明数据段的地址4、开始程序编写5、程序结束时要调用程序终止的终断,否则程序无法正常终止/************************************/一段小例程,演示汇编语言的基本格式,实现8位数字的加法/*********数据段定义**********/data segmenta db 129Db db 130Dsum DW ?data ends/***********************************/code segmentassume DS:dat. 阅读全文

linux下使用DNW下载镜像-TQ2440

2011-12-07 14:29 by libing64, 660 阅读, 收藏,
摘要: linux下串口通信-TQ2440常见另一篇博客:http://blog.csdn.net/renshengrumenglibing/article/details/7049471本人使用的Ubuntu10.04开发板是TQ2440在网上找到一个dnw for Linux。共享给大家(secbulk目录下是PC端USB驱动, dnw目录是下载工具)效果图:1.首先解压缩文件:# tar xvf dnw_for_linux.tar.gz另:在ubuntu下右键解压也很方便2.然后切换到下面的目录,编译usb驱动模块:# cd dnw_for_linux/secbulk# make -C /lib 阅读全文

linux下与TQ2440进行串口通信

2011-12-07 13:25 by libing64, 252 阅读, 收藏,
摘要: windows下进行串口通信,如果是笔记本的话一般需要安装PL2303的驱动,win7的话经常会无法识别,非常烦人。其实linux下也有串口的驱动,默认已经安装了Pl2303.本人使的是ubuntu10.04效果图:一、安装minicom控制台指令:# sudo apt-get install minicom自动完成部分:*************************************正在读取软件包列表... 完成正在分析软件包的依赖关系树正在读取状态信息... 完成将会安装下列额外的软件包:lrzsz下列【新】软件包将被安装:lrzsz minicom共升级了 0 个软件包,新安装 阅读全文

ARM学习-TQ2440

2011-12-04 15:33 by libing64, 501 阅读, 收藏,
摘要: 最近开始学习ARM9,使用TQ2440,但是发下板子太新了,现成的资料很少啊,学起来比较费劲。但是没办法啊,慢慢搞吧。先列一些要学的内容,参考亚嵌培训的内容吧嵌入式系统概述与ARM简介 1 ARM处理器与其他体系结构处理器异同比较 2 ARM芯片选型 3 ARM外围硬件设计 4 ARM程序和算法 5 ARM操作系统(uC/OS-II/ARMLinux/uCLinux/WinCE)ARM知识体系 1 ARM的特点(体系结构/流水线/异常处理/寄存器组织) 2 ARM内核概述(内核命名/应用内核/嵌入式内核/安全内核) 3 ARM内核系列ARM结构与编程 1 ARM的工作模式 2 ARM存储器格式 阅读全文

TQ2440使用定时器产生PWM,控制蜂鸣器发声

2011-12-01 22:27 by libing64, 1213 阅读, 收藏,
摘要: GPBCON:引脚配置寄存器GPBUP:端口使能上拉寄存器 GPBDAT:端口数据寄存器TCFG0:配置两个8位预分频器TCFG1:5路多路选择器和DMA模式选择寄存器TCNTB0: 定时器0计数缓冲寄存器TCMPB0: 定时器0比较缓冲寄存器TCON: 定时器控制寄存器2440有两个8位预分频器0,1共用一个2,3,4共用另外一个,每个定时器都有一个可以生成5种不同分频信号(1/2,1/4,1/8,1/16和TCLK)的时钟分频器。8位预分频器是可编程的,并且按存储在TCFG0和TCFG1寄存器中的加载值来分频PCLK。定时器输入时钟频率由TCFG0与TCFG... 阅读全文