- 博客(37)
- 收藏
- 关注
原创 C# 中chart 柱状图用法代码
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Win
2016-03-02 17:29:58
4612
原创 C语言循环创造文件
#includeint main(){char nameout[20];FILE *fout;int i,n=100;for (i=1;i<=n;i++){sprintf(nameout,"C:\\%d.txt",i);fout=fopen(nameout,"w");fprintf(fout,"%d",i);fclose(fout);}return 0;}
2014-09-05 17:44:37
1146
翻译 能检测出鼻子,眼睛,嘴巴的opencv程序
/*本程序函数讲解: //detectMultiScale函数中smallImg表示的是要检测的输入图像为smallImg,faces表示检测到的人脸目标序列,1.1表示 //每次图像尺寸减小的比例为1.1,2表示每一个目标至少要被检测到3次才算是真的目标(因为周围的像素和不同的窗口大 //小都可以检测到人脸),CV_HAAR_SCALE_IMAGE表示不是缩放分类器来检测,而是缩放图像,S
2013-12-09 17:49:35
3037
原创 Art&Science 摄像/照相/
头的焦距除了最直观的影响拍摄画面的视野宽度,还影响着近大远小的透视程度。上述的两要素都表现为反比关系,焦距越小视野越广阔、焦距越小透视愈被夸大。必须要补充说明的是,任何焦距的镜头在过于靠近被摄物时都会表现出变形,即前景夸大明显。
2013-10-27 17:50:15
409
原创 MATLAB计算后如何用envi读取图像?
MATLAB可以将图像转为为uint8类型,保存成tif格式,,然后用envi读取图像 BLU=uint8(blue)RED=uint8(red)GREEN=uint8(g)RGB=cat(3,RED,GREEN,BLU) %将三个波段组合成一新矩阵imwrite(RGB,'4.tif')% 保存成tif的图片
2013-07-25 17:58:10
1344
1
原创 MATLAB中图像的显示问题(imshow)
imshow(A),A要为double或uint8类型。,A为double型,则必须在[0,1]之间才能显示,若A为uint8型,则要在[0,255]才可以显示。可以参考若A为int16类型,首先A=double(A).min=min(min(A))max=max(max(A))B=[A-min]/(max-min) %转换为[0,1]之间imshow(B).也可以转换
2013-07-25 17:51:27
5461
原创 zynq嵌入式opencv移植
1.首先安装交叉编译工具链,安装完成后,交叉编译的命令是arm-xilinx-linux-gnueabi-gcc,将交叉编译命令导入路径内2.makefile的写法:input=red_detc.cppcompiler=arm-xilinx-linux-gnueabi-gcc#compiler=gccoption=-lstdc++nyk: ${compiler
2013-06-15 21:37:11
1976
原创 随机数
rand()是从srand (seed)中指定的seed开始,返回一个[0,RAND_MAX(0x7fff)]间的随机整数,不设srand,默认seed为1,所以每次都相同。函数rand()是真正的随机数生成器,而srand()会设置供rand()使用的随机数种子。如果你在第一次调用rand()之前没有调用srand(),那么系统会为你自动调用srand()。而使用同种子相同的数调用 sran
2013-06-09 01:06:10
361
原创 WORD给图表排序号,给公式加号,参考文献
WORD给图表排序号:插入题注,新建标签,如图1-,这时后面会自动跟上1,2,3的给公式加号:首先加载MATTYPE到WORD里,然后再点left-numbered的插入方式设立一个新的样式,其中制表位第一个为17.15字符,居中,第二个为35字符,具有,打完公式和标号后,在公式前后各按一次TAB就可以了
2013-05-28 21:57:58
1265
原创 MFC构造内存DC显示图像
CDC dcMem; //用于缓冲作图的内存DC CBitmap bmp; //内存中承载临时图象的位图 dcMem.CreateCompatibleDC(dc); //依附窗口DC创建兼容内存DC,注意dc为程序的窗口dc ,不能使用内存dc如dcMem bmp.CreateCompatibleBitmap
2013-05-10 18:30:55
1467
转载 static作用域
C程序一直由下列部分组成: 1)正文段——CPU执行的机器指令部分;一个程序只有一个副本;只读,防止程序由于意外事故而修改自身指令; 2)初始化数据段(数据段)——在程序中所有赋了初值的全局变量,存放在这里。 3)非初始化数据段(bss段)——在程序中没有初始化的全局变量;内核将此段初始化为0。 4)栈——增长方向:自顶向下增长;自动变量以
2013-05-09 00:06:01
1697
原创 全局变量与局部变量同名的后果!
int a;void main(){ int a=5; fft();}void fft(){printf("%d",a)}则a为0.在局部函数中定义了一个同名的变量,此时在MAIN中就会屏蔽掉全局变量,不会给全局的a赋值5.
2013-05-09 00:05:35
3611
转载 C语言中extern的用法
在C语言中,修饰符extern用在变量或者函数的声明前,用来说明“此变量/函数是在别处定义的,要在此处引用”。1. extern修饰变量的声明。举例来说,如果文件a.c需要引用b.c中变量int v,就可以在a.c中声明extern int v,然后就可以引用变量v。这里需要注意的是,被引用的变量v的链接属性必须是外链接(external)的,也就是说a.c要引用到v,不只是取决于在a.c
2013-05-07 23:01:06
485
原创 C语言编程中读取文件中的数据
int row,col;float c[100]={0}; FILE *fp;fp=fopen("a.txt","r");fscanf(fp, "%d", &row);fscanf(fp, "%d", &col);for(i=0;i<col*row;i++){fscanf(fp, "%f", &c[i]);}数据是每个中间隔一个空格,例如:3 30.5452 0.
2013-05-05 22:38:26
977
原创 C编程对程序计时
#include void main(){ time_t start_time; time_t end_time; time(&start_time); printf("start"); float b=100; float *a=&b; for(int j=0;j<100;j++) { float **Grad_n; Grad_n =new float*[256];
2013-04-30 00:42:20
664
原创 多个C与H文件编程
有多个C文件时,可以在一个H文件中进行函数声明,在相应名字的C文件中进行实现。#include:就是把XXXX.h中的内容原封不动的搬过来
2013-04-26 22:53:43
762
转载 图像FFTshift
对于一维函数:未平移前,FT的一个周期是沿原点对称分布的。讨论DFT,假设频率范围为[0,1,……,M-1,M],则DFT的频谱分布在原点0的两侧,左:[M/2,M/2-1,……,0],右侧[0,……,M/2-1,M/2]同样,将上述道理用于理解二维函数(比如图像数据):FT的中心位于频率矩形的中点——假设u,v为频率自变量,则在u方向的FT和沿v方向的FT是沿原点对称分布的,而原始图像的
2013-04-17 18:15:50
1570
1
原创 图像的二维傅里叶变换
1.二维傅里叶变换程序计算公式:(m--宽度方向,n--高度方向)2.图像傅里叶变换后的要点:1.变换之后的图像在原点平移之前四角是低频,最亮,平移之后中间部分是低频,最亮,亮度大说明低频的能量大(幅角比较大)。2.行N/2和列N/2将频域分成四块。对实部和幅度来说,右上角和左下角成镜像关系,左上角和右下角也是镜像关系;对虚部和相位来说,右上角和左下角成共轭关系,左上角和右下角也是
2013-04-15 17:12:56
3662
原创 MFC的调试代码
MFC的调试代码char p[10];itoa(i,p,10);//将i整数转换为字符串类型AfxMessageBox(CString(p),NULL,MB_OK);//调试信息将float类型输出CString mm;mm.Format ("%f",Grad2_n);AfxMessageBox(mm,NULL,MB_OK);
2013-04-09 18:26:20
474
原创 地址加1到底加多少?
指针做偏移操作的时候是根据指针的类型来做出移位判断,比如这个例子里面指针是整形,所以每次偏移的时候是按照整形的长度(4字节,32位)偏移,如果指针是char类型,则每次加1是加1个字节。指针自增每次增加的增加量=sizof(你所用的数据类型)比如char型指针 自增的话地址加1int型 一般都是4字节,所以自增会加4.
2013-04-08 16:07:06
3982
原创 二维数组的地址问题
如定义 int a[2][2]={1,2,3,4}则 a ,a[0]均为1的地址,两者是一样的,即矩阵的首地址,与a[0][0]的地址一样,a[1]为第二行的首地址。这个与new的不太一样。new的话, a为a[0]的地址,两个不会一样的。
2013-04-08 15:33:10
565
原创 MATLAB中gradient求数值梯度的命令
gradient()是求数值梯度函数的命令。[Fx,Fy]=gradient(x),其中Fx为其水平方向上的梯度,Fy为其垂直方向上的梯度,Fx的第一列元素为原矩阵第二列与第一列元素之差,Fx的第二列元素为原矩阵第三列与第一列元素之差除以2,以此类推:Fx(i,j)=(F(i,j+1)-F(i,j-1))/2。最后一列则为最后两列之差。同理,可以得到Fy。
2013-04-07 23:25:44
2431
原创 四舍五入取整,强制类型转换
floor:地板,向负无穷大取整,floor(2.5)=2.floor(-2.5)=-3;ceil:天花板 ,像正无穷大取整,ceil(2.5)=3强制类型转换,float b=-3.6 b=int(b);//b=-3,舍弃掉后面的小数超出范围的话要注意:如float c=257;c=unsigned char (c)//c=1,超出范围的话,将C作为超出范围的1如果
2013-04-07 18:49:45
1535
原创 二位数组中的指针初始化时的地址
unsigned char **Image_Array;Image_Array=(unsigned char**)malloc(sizeof(unsigned char *)*10);//分配指向uchar变量的指针,任何指针都只占4个字节if(Image_Array==NULL){return(-2);}for(int m=0;m<10;m++){Image_Array[m]=
2013-04-06 00:05:38
493
原创 new和malloc的区别
1、new 是c++中的操作符,new成功了返回分配空间的首地址,否则返回NULL,malloc是c 中的一个函数2、new 不止是分配内存,而且会调用类的构造函数,同理delete会调用类的析构函数,而malloc则只分配内存,不会进行初始化类成员的工作,同样free也不会调用析构函数3、内存泄漏对于malloc或者new都可以检查出来的,区别在于new可以指明是那个文件的那一行
2013-03-29 22:20:15
472
原创 二重指针分配矩阵内存并初始化
首先要明白的是:int **a ; a为(指向int类型的指针)的指针METHOD 1:先分配内存malloc1.如果后面初始化赋值了,后面就不用了2.如果后面没有赋值,需要memset了如果说我临时需要一块内存,这块内存用来存储n个int的变量。我就需要使用malloc为pMax分配一块内存。可以这样做:pMax = malloc(sizeof(int) * n);
2013-03-29 17:27:21
1886
原创 PSNR图像信噪比
计算PSNRPSNR是“Peak Signal to Noise Ratio”的缩写,峰值信噪比。psnr一般是用于最大值信号和背景噪音之间的一个工程项目。 PSNR计算公式如下: 8bits表示法中,peak的最大值为255;MSE
2013-03-16 19:52:55
1135
原创 MATLAB中的卷积运算
Imfilter:线性空间滤波conv2:二位卷积conv2(a,b,same):将b作为模版在a上平移,最后的矩阵大小与a相同例如:a = 1 2 3 4 5 6 7 8 9b = 1 1 1 1 1 1 1
2013-03-13 12:06:34
1591
原创 人脸识别最终版
本程序首先利用从摄像头检测到的人脸图片,先进行直方图均衡化并缩放到92*112的图片大小,然后根据train.txt的采集到的人脸模版进行匹配识别(最好是在统一光照下,采集不同角度的人脸图片各一张)注意:影响的极大因素在于光照,模版若与采集的图像光照不一样,识别率很低。经测试,模板若与检测的图像在同一光照下的话,侧脸,仰脸,正脸均可识别,且识别率较高//#include #inclu
2013-02-23 23:40:29
2901
原创 opencv中image detection中截取人脸图片为大小统一的照片作为识别的模版
#include "cv.h"#include "highgui.h"#include #include #include #include #include #include #include #include #include #ifdef _EiC#define WIN32#endif static CvMemStorage* storage = 0;st
2013-02-20 23:47:14
2266
2
原创 opencv最简单的显示程序
#include "cv.h"#include "highgui.h"int main(){ IplImage *test=0; cvNamedWindow("result",1); test=cvLoadImage("h:\\1.jpg",CV_LOAD_IMAGE_GRAYSCALE); cvShowImage("result",test); cvWaitKey(0); c
2013-02-20 18:21:37
558
原创 Image detection
#include "cv.h"#include "highgui.h"#include #include #include #include #include #include #include #include #include #ifdef _EiC#define WIN32#endif static CvMemStorage* storage = 0;st
2013-02-20 18:10:08
392
转载 cvCalcEigenDecomposite——opencv内置PCA算法的第二个函数小记。
PCA(Eigenface)方法是人脸识别的主流方法之一。cvEigenDecomposite()函数作用是将人脸图像通过Eigenface变换矩阵,投射到子空间中。子空间中的人脸向量,是一个1×nEigens(nEigens由自己取得)的行向量,极大地降低了数据维度,便于下一步的聚类、识别。结合具体例子,尽量清楚地跟大家讨论这个函数的用途。 函数说明如下:Eig
2013-02-20 17:20:56
502
转载 cvloadImage无法加载图片返回空指针的问题
cvLoadImage(filename,flag)函数,如果filename直接输入"*.bmp",有可能出现找不到图片的问题。虽然该图片在工程目录下,但仍然找不到。可能原因是路径太长。若filename输入"filepath//.bmp"时,需要注意:filepath中所有的/都需要转义,用//代替。注意:CvLoadImage中filename的图片格式要选用BMP,不要用jpg压缩
2013-02-11 16:09:53
1233
原创 opencv中利用图像相减识别物体运动
利用从摄像头输出的图像,对运动物体可以进行识别并报警#include "stdio.h"#include "time.h"#include "Dos.h"#include #include #include //#include "mmsystem.h"#include "windows.h"#pragma comment(lib, "winmm.lib")
2013-02-08 18:58:32
1365
转载 HSV颜色模型
HSV颜色模型HSV(Hue, Saturation, Value)是根据颜色的直观特性由A. R. Smith在1978年创建的一种颜色空间, 也称六角锥体模型(Hexcone Model)。这个模型中颜色的参数分别是:色调(H),饱和度(S),亮度(V)。 HSV颜色空间模型[1]色调H:用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算
2013-02-07 14:43:06
907
原创 结构体数组指针加1到底加多少字节?
#includevoid main(){struct student{int num;char name[20];};struct student sss[10];struct student *p=sss;(*p).num=102;printf("%d\n",p);p=sss+1;printf("%d\n",p);//增加了24个字节p=p
2013-01-16 21:01:34
4150
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人