- 博客(27)
- 资源 (2)
- 收藏
- 关注
原创 C++读取大型矩阵问题
之前写了个opencv读取大矩阵的问题,这次遇到一个更大的矩阵,不想用opencv格式化读文件,故直接采用c++读取。首先c++读取文件的几种方式可以参考“探寻C++最快的读取文件的方案”(1)一文,而其中提到的内存映射方法可以参考“windows笔记-内存映射文件”(2)一文。输入对象是一个50×71028的浮点数矩阵,保存为.txt文件,共55mb,单纯采用fstream格式化读取需要
2013-09-09 15:30:31
2754
原创 初入手势识别(2)
初入手势识别,上节已经采集了部分静态图片,本节准备对这些静态图片进行处理,分割出其中的手部区域。首先是肤色分割。查找文献可以发现,1.肤色一般在HSV空间具有很好的聚类特性,其中H-{30,45},S-{35,200},V-{20,255}。2.定义YIQ空间和Ycbcr空间转换而来的变量 theta=atan(cr/cb), I=0.596R-0.274G-0.322
2013-07-12 00:06:03
1020
原创 初入手势识别(1)
初入手势识别领域,一般查文献,一般记录。仿真暂时采用matlab,待算法成熟转为opencv首先是样本的获取:采用matlab采集图片,先对静态图像进行手势检测:matlab获取摄像头的程序如下:clear all;imaqmem(30000000);%申请内存空间vid = videoinput('winvideo', 1, 'YUY2_320x240');preview(
2013-07-11 22:37:30
1335
原创 树莓派入手笔记(一)
拿到树莓派才发现配置没凑齐,没有HDMI转VGA线,没有外接显示器。于是只能用网线连接笔记本电脑,欲通过SSH连接PI方法如下:在烧好的系统SD卡内的cmdline.txt中添加ip=169.254.0.2 这样就可以在网线连接的过程中不用给笔记本的本地连接设置IP地址---这样就可以用putty连接PI了---关于无线网卡把WIFI网卡插入树莓派的USB口
2013-06-24 14:58:23
925
原创 三维显示软件制作--显示部分(4)
写这节的目的是为了单独把 CPU占用拿出来记录一下之前写的程序CPU占用特别高 基本在50%左右究其原因应该还是在于 对话框程序的 OnPaint和opengl类中的OnPaint中于是果断将opengl类中的OnPaint删掉,添加OnEraseBkgnd函数BOOL COpengl::OnEraseBkgnd(CDC* pDC) { // TODO: Add your me
2013-02-24 00:31:22
397
原创 三维显示软件制作--显示部分(3)
今天在制作中各种百度各种查阅,收益颇丰.....首先是上节制作的小程序会存在一个问题,比如最小化或者移动窗口到遮挡opengl部分后,整个画面会残缺--整个问题应该是因为窗口重画过程中没有对opengl部分进行重画,所以需要在COpengl类中的OnPaint中加入重画部分RenderScene();其次是上节写的RenderScene()函数中的坐标范围必须在-1.0~1.0
2013-02-23 21:49:09
437
原创 三维显示软件制作--显示部分(2)
上一节已经使opengl程序正常显示在MFC对话框窗口中。这次解决的问题主要是如何将读入的数据显示出来。由于opengl显示的函数集中在RenderScene()中,考虑到不能为这个函数传递参数,只能将之前定义的部分数据移到opengl类中定义---暂时移入的变量为vector posdata;vector texdata;int isreadpos,isreadtex
2013-02-23 01:02:40
347
原创 三维显示软件制作--显示部分(1)
显示部分主要由opengl实现首先需要解决的问题是如何在MFC的对话框程序中应用opengl参考网上内容,先做了一个小实验。MFC对话框程序中应用opengl主要涉及到几个部分:opengl的初始化,opengl窗口的渲染,opengl窗口的创建为了便于外部调用,新建类COpengl,继承类public CWnd,添加:public: virtual void R
2013-02-22 00:31:53
538
原创 三维显示软件制作---文件读入部分
文件读入部分采用标准C语言中的fstream实现数据来自matlab生成的txt文件,内含float格式(x,y,z)坐标新建头文件file.h和file.cpp考虑到读入文件存在:1.读入3D坐标2.读入3D纹理故定义函数Read3DposRead3Dtex由于读入数据需要用来显示,需要提前定义vector posdata和texdata来保存,并且,需要设
2013-02-21 15:57:48
488
原创 三维显示软件制作---GUI部分
首先是GUI部分的制作 考虑采用画图板制作出背景图片,通过在WM_ERASEBKGND消息响应中重画来完成GUI的加载网上提供的材料1.没找到WM_ERASEBKGND消息:classinfo->Message filter中下拉选中windows 返回message maps即可看到2. 如何加载:首先要提前添加resourse 命名为IDB_BKG 定义全局变量CBit
2013-02-20 23:17:43
529
原创 三维显示软件制作--概述
因项目需要,准备制作一个基于MFC和opengl的三维显示软件,在之前工作的基础上完成。初步设想涉及到的知识有 MFC的应用,opengl的应用软件目的:1.实现项目中三维坐标数据和三维纹理的读取、显示,并能通过鼠标调节观察角度2.输入坐标点序号,可以在三维图上标示出来软件模块:1.GUI设计 拟采用黑色背景,大致界面如下(初步准备这样 画得有点丑)2. 3D数
2013-02-20 21:55:25
587
原创 opengl学习笔记(6)
纹理贴图的步骤1) 创建纹理对象,并为它指定一个纹理2) 确定纹理如何应用到每个像素上3) 启用纹理贴图功能4) 绘制场景,提供纹理坐标和几何图形坐标
2013-01-17 15:44:36
262
原创 opengl学习笔记(5)
显示列表创建显示列表1.为了避免覆盖已有显示列表,创建列表的时候需要用未使用的索引值。GLuint glGenLists(GLsizei range)如果返回0 则表示系统无法满足这个函数分配的索引值的数量2.指定显示列表glNewList(GLuint list,GLenum mode)mode可使用的值位GL_COMPILE(放入但暂时不执行) 和 GL_COMPI
2013-01-17 15:28:50
289
原创 opengl学习笔记(4)
在csdn写博客了 可以用上代码编辑了...指定着色模型glShadeModel(GLenum mode)mode的参数可以是GL_SMOOTH(平滑着色)或者是GL_FLAT(单调着色) 平滑着色下两点之间的颜色是均匀差值的
2013-01-17 15:04:45
271
原创 opengl学习笔记(3)
在执行模型和视图变换之前需调用glMatrixMode(GL_MODELVIEW); glLoadIdentity();模型变换函数1.glTranslate{fd}(type x,type y,type z) 平移 如glTranslatef(0,0,1)2.glRotate{fd}(type angle,type x,type y,type z) 旋转 angle为角
2013-01-17 14:43:48
368
原创 opengl学习笔记(2)
顶点数组为了完成多顶点几何图元的渲染(比如点云数据的显示)可以使用顶点数组函数和少量函数调用来访问这些数据使用顶点数组对几何图形渲染的过程有3个步骤1.激活数组(最多可以达到8个)2.把数据放入数组中3.用这些数据绘制几何图形下面分部介绍1.启用数组 glEnableClientState(GLenum array)可用的符号常量:GL_VERTEX_ARRAY GL_COLOR_ARRAY
2013-01-16 11:28:27
308
原创 opengl学习笔记(1)
1.opengl窗口管理初始化过程:i.对GLUT初始化 glutInit(int *argc, char** argv) 如果窗口没有argc和argv的话 这样初始化; int a=1; glutInit(&a,NULL); ii.对显示模式初始化 glutInitDisplayMode(unsigned int mode)
2013-01-16 11:28:25
290
原创 MFC对话框打开文件
用到MFC对话框打开文件,方法如下CFileDialog::CFileDialog( BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR lpszFilter = NU
2013-01-16 11:28:23
551
原创 opencv中的cvEigenVV小结
用到opencv中的cvEigenVV, 吃了不少苦头啊...首先 函数格式为 CVAPI(void) cvEigenVV( CvArr* mat, CvArr* evects, CvArr* evals, double eps CV_DEFAULT(0))注意 1.这里的evects是特征向量 按照降序排列的 2.evals是特征值array,必须是 n*1的矩阵!另外用这个函数求出来的特
2013-01-16 11:28:21
2645
1
原创 访问CvMat中的元素
访问CvMat中的元素 简单的通过CV_MAT_ELEM宏,cvGetRealXD()函数即可实现,但是图像处理是计算密集型操作,这些函数虽然简单易用,但是效率比较低。因此最常用的是采用指针来访问CvMat中的元素。 CvMat结构中data结构对于指针访问其元素非常重要. 其data成员为 union{ uchar* ptr; short* s
2013-01-16 11:28:19
1279
原创 C++计算矩阵乘法
遇到一个矩阵乘法的问题,目的是计算A'A和AA'设A 是3行3列的矩阵计算AA'如下int sk[9]={0};for (i=0;i{for (j=0;j{for (k=0;k{sk[i*3+j]+=a[i*3+k]*a[j*3+k];}}}计算A'A如下:for (i=0;i{for (j=0;j{for (k=0;k{sk[i*3+j]+=a[k*3+i]*a[k*3+
2013-01-16 11:28:17
868
原创 C++中文读写以及CString与string互转
上一篇是C++文件读操作,但是实际过程中没考虑到中文,CString的问题,所以这篇把这两个问题的解决方案写出来记录。首先是中文,其实C++中的string可以直接读写中文的..其次是MFC中的CString和string的转换。因为fstream不支持读写CString,读和写的时候都需要转换为string。首先 读取的时候将string转换为CString。 很简单,只需要一句话 CSt
2013-01-16 11:28:15
2127
原创 C++中文件读操作
遇到个文件读写的问题,读的时候想直接赋值到数组中,写的时候同样比如从faceinfo.wzy中读取数据3 3aaa bbb ccc3 2 14 3 94 9 7数据格式:第一行:前2个数int型 代表人数和每个人的特征数 第二行:所有人的名字,string型 第三行开始:每个人的特征注意C++对于string类型的读取: 需要在头文件定义 #inc
2013-01-16 11:28:13
465
原创 OpenCV读取图片在MFC中显示的问题
昨天做一个小的MFC+OPENCV图像处理程序界面如下:其中在效果演示一栏里加了一个Frame用以显示图像。但是遇到一个问题,如何将IplImage*类型的图像转换为可以再MFC中显示的图像。各种百度google以后终于找到一解。由于IplImage存储数据的方式与MFC支持的Bitmap类似,只需要利用opencv自带的类型CvvImage就可以了。完成的函数如下:void
2013-01-16 11:28:11
1210
原创 Opencv读取大矩阵问题解决方案
继续之前文章的问题。用matlab生成了3个文件,分别是wcf_p 存储着1*699的点矩阵,fe_info存储着3*699的点坐标,wcf存储着256*699的点数据,3个文件都是相互对应的。在用Opencv读取wcf存在的问题是 读取时间过长,达到15+秒。经过多次试验,将读取方式改变:以前:fe_info=(CvMat*)cvLoad("fe_info.xml",0);wcf_
2013-01-16 11:28:09
1390
原创 opencv读matlab中.mat文件
遇到一个问题,需要将matlab中的矩阵用opencv打开。故尝试了下在matlab中编辑.xml文件,用opencv中的cvLoad调用。首先用opencv自带函数生成一个.xml文件double a[9]={2,2,3,4,5,6,1,2,2};CvMat *testmat=cvCreateMat(3,3,CV_64FC1);cvInitMatHeader(testmat,3,
2013-01-16 11:28:07
3351
7
原创 移动竞争对手营销活动应对方案
题目:某市移动的竞争对手在该市的东、西、北城区开展一系列促销、降价等市场营销活动,为了应对对手这些活动,我们需要提出哪些策略以及营销活动我家丢的方案:首先 要以顾客为中心 尽力为顾客服务 给顾客营造上帝的感觉 我觉着服务行业这个是最重要的,为什么都选择招商银行的信用卡 因为优惠活动做得多 而且做到了消费者的心坎上 服务也特别的到位 配套的活动也很好,移动呢 做好套餐的宣传 让每个消费者都能找到
2013-01-16 11:28:04
893
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人