12-8
02

傅里叶变化与频率那些事儿

学数字信号处理的时候都会接触到的三个东西就是数字频率,模拟频率,采样频率,这三个东西其实挺好懂得,但是一旦涉及到编程那些东西好像很容易出错,而且一般都是比较难查的。然后一旦到了数字滤波器那些东西,又来什么归一化频率的,就更乱了,加上数字福利叶变换后频率就变成-π到π了,然后又有人搞不懂了。。

趁我现在脑子清新,概念还比较清晰,这里整理一下,也方便将来我又分不清东南西北的时候可以回来复习复习,如果有找不着北的孩子看到这个,希望对你有帮助。

首先我们解释模拟频率,数字频率和采样频率。

假设我们有一小段正弦信号sin(2 π f t),不要考虑任何数字化的东西,这个f就叫做模拟频率。假设f=100,那么我们高中知识知道这个正弦信号的周期是1/f,也就是0.01,也就是说0.01的时间t里面正弦信号变化的一周,我们就知道从0到1里面变化了100次,也就是f次,所以我们才把f叫做频率的。 阅读全文…

12-8
02

OPENCV笔记

滑动条:
cvCreateTrackbar(滑动条名字,窗口名, 起始位置, 最大值, 回调函数);
cvSetTrackbarPos(滑动条名字,窗口名,pos);
回调函数:void F(int h)

=================================================
ROI:

void cvSetImageROI(IplImage* image, CvRect rect); 
void cvResetImageROI(IplImage* image); 
vRect cvGetImageROI(const IplImage* image);

=================================================

颜色转换:

cvCvtColor(src,dst,code);
code = CV_<X>2<Y>
<X>/<Y> = RGB, BGR, GRAY, HSV, YCrCb, XYZ, Lab, Luv, HLS
e.g.: CV_BGR2GRAY, CV_BGR2HSV, CV_BGR2Lab

=================================================

摄像头:

CvCapture* XXX = 0; 

XXX = cvCaptureFromCAM(0); 

frame = cvQueryFrame(xxx);

================================================= 阅读全文…

分类: OPENCV 标签: ,
12-8
02

MFC & C++ 笔记

获取控件及控件使能:

CButton *pButton=(CButton*)GetDlgItem(IDC_STOP);

pButton->EnableWindow(FALSE);

=================================================

文件拖拽功能:

→→→→→→→点这里

=================================================

文件读取:

CFile mFile(_T(FileName),CFile::modeRead);

mFile.Read(Buffer,BufferLength);

CFile::SeekToBegin();//文件指针回到头

mFile.Close();

CFile mFile(_T(FileName),CFile::modeWrite|CFile::modeCreate); 

mFile.Write(Buffer,BufferLength); 

mFile.Flush(); 

如果要实现每次读取文件的一行,要用CStdioFile,这个类继承于CFile

CStdioFile::ReadString(CString) 阅读全文…

分类: MFC 标签: ,
12-8
02

MFC实现文件拖拽功能

最近玩空轨3rd,经过内心无数次激烈的斗争,我毅然决然的打开了修改器,然后看到那个修改器的时候,我第一个注意到的不是这个修改器的功能,而是里面有个group控件,要把游戏的save文件拖到这里面来,再对save文件读取后修改。然后。。我一直在想的就是。。这个功能要怎么实现,想象QQ发文件也是拖拽功能,以前有个ASS字幕文件改SRT的也是拖拽一下就可以了。最近老板让我写的一个自动光栅仪的上位机程序里面要读取目标文件,我用的还是DoModel一个CFileDialog变量,如果实现拖拽的话,交互性感觉会好很多。

然后今早来实验室就上网查找资料,研究拖拽功能。

话说这个东西一点也不难,因为MFC本身就设置了这个功能。

最简单的你在MFC里面建立一个基于Dialog的工程,然后在对话框编辑器里面把Accept File改成TRUE,然后再给对话框添加一个WM_DROPFILES的消息响应,在OnDropFiles函数里面写拖拽到对话框里面后要响应的是什么代码就行了。 阅读全文…

分类: MFC 标签: ,
12-8
01

空之轨迹3rd同步吐槽

最近闲的没动画看,把之前下好的空轨3rd装了来玩。

其实一开始很不想玩儿的,毕竟嘛,换主角了,抱着对前两部的感情,对3rd就没啥feel了,不过真的闲的没事干,实验室晚上不要求干活,最近动画暂时看完了,所以就装了来玩。

不过坑爹的是,宿舍笔记本装了进不了游戏,实验室电脑装了玩起来表示毫无压力,搞了半天好像是我同时装了暴风影音和最终解码两个播放器的问题,不过又懒得删,所以直接把游戏开始的那个动画删了。。

阅读全文…

分类: 游戏 标签:
12-7
30

匹配滤波器

学数字通信原理的时候就会学到,如果一个信号,传输过程中加了白噪声,然后我们接收到这个信号后,需要对这个信号进行采样,我们想要的结果是想要在时刻Ts对这个加了噪的信号进行采样,使得在Ts时刻采样点的信噪比最大;通信原理课本告诉我们如果要达到这个目的,那么就要在采样前先把信号通过一个匹配滤波器,然后再在Ts时刻采样,匹配滤波器可以让你的信噪比达到最大。

匹配滤波器通过使滤波器和信号取得某种一致性,使得在Ts时刻信号出现某一尖峰,这样来实现抑制噪声。额。。匹配滤波器的推导这里就不说了,因为什么地方都可以查得到,反正就是假设信号是x(t),那么匹配滤波器的系统响应函数就是: 阅读全文…

12-7
29

(怀旧向)第五弹:幻方

幻方,也有人称之为魔方,就是横竖斜和都相等的那种方阵。

小学6年级在奥数课上老师告诉我奇数阶幻方的通解,不知道的小朋友们,我在这科普一下吧:

阅读全文…

分类: 数学 标签: , ,
12-7
29

近邻传播聚类Affinity Propagation

机器学习中一个很重要的方面就是聚类算法。聚类算法说白了就是给你一大堆点的坐标(维度可以是很高的),然后给你一个距离度量的准则(比如欧拉距离,马氏距离什么的),然后你要自动把相近的点放在一个集合里面,归为一类。

继续科普:一个比较传统的聚类算法就是k-Means聚类,算法很简单,哦,说起这件事,我刚刚在整理东西时就发现了一篇讲到k-Means的论文,里面又是一大堆看不懂的符号,我说你们真的有必要那么装逼么?? 阅读全文…

12-7
29

获取指定窗口图像API

 我们本科宿舍里几个人一直觉得大学学了这么久好像也没能作出些什么好玩的来,当年还曾经豪言约要改造宿舍,弄成学电子的人才会住的宿舍,比如在床边弄个控制器,有人敲门不想走过去开门时按个键就可以了,然而,这么久过去了,一直属于无所为的状态。

因为不想搞什么太专业的,但是又要好玩儿的。。。然后,大四开学两个多月后,我们宿舍所有人保研的保研,工作的工作,全部都找到归属了,人生一时间没什么可以奋斗的理由了,所以。。。沉迷到。。。。水果忍者。。。里面去了,整天切水果,一人一局决胜负,哈,那是真狂热哈。。之后某次吃饭的时候我突然想到,要 阅读全文…

分类: OPENCV 标签: , , ,
12-7
28

(怀旧向)第四弹:Adaboost二维点集分类

之前发了一个Adaboost的matlab代码以及算法的解释,然后想起来以前还写了一个Adaboost的二维点集分类程序,就是在二维平面上以某种规律呈现一些点集,一些是正样本,一些是负样本,然后让Aboboost去学习,然后最后看能达到什么程度。

阅读全文…

分类: OPENCV 标签: , ,