08 2011 档案
摘要:看到网上各种牛人,表示很有鸭梨啊!传送门:总结一些常出现的面试题:1、网络编程问题 ,Socket通信的连接过程,具体到使用什么函数。建立连接的三次握手和断开连接的四次挥手是怎么进行的。服务器端的多线程、多进程问题,服务器端处理大规模连接如何处理。还有就是进程同步、锁、和进程通信应该怎么实现。这些在《Unix网络编程》都可以找到答案。2、算法的题,就是经常会出些动态规划和查找相关的,dp基本都是最基本的经典题目,比如最长公共子序列、最大子段和、最长不降子序列、背包什么的,稍微了解算法的人,都应该会的。查找,考的最多的应该就是从一个很大的集合中,找出前K个最大的数,用快排中的Partition思
阅读全文
摘要:9.1华为笔试上机考试啊,赶紧复习下字符串。网上参考了下,自己写了个实现:#include<iostream>#include "stdio.h"using namespace std;char temp[100];void my_swap(char &a,char &b){ char temp1 = a; a = b; b = temp1;}void res_num(int num){ int i = 0; while (num) { temp[i++] = num%10 + '0'; num /= 10; } cout <
阅读全文
摘要:http://people.cs.uchicago.edu/~niyogi/http://www.cs.uchicago.edu/people/http://pages.cs.wisc.edu/~jerryzhu/http://www.kyb.tuebingen.mpg.de/~chapellehttp://people.cs.uchicago.edu/~xiaofei/http://www.cs.uiuc.edu/homes/dengcai2/http://www.kyb.mpg.de/~bshttp://research.microsoft.com/~denzho/http://www-u
阅读全文
摘要:在这里先mrak下:作者:skyseraph 出处:http://www.cnblogs.com/skyseraph/ 我修改了下代码的粘贴方式,这样方便大家学习啊,呵呵!!头文件ZGLCM.h// FeatureDetect.h: interface for the FeatureDetect class. // /////////////////////////////////////////////////////////////////////////////////////// /* Author: skyseraph/zhaobo 2011/4 zgzhaob...
阅读全文
摘要:#include "iostream"using namespace std;#include "cv.h"#include "highgui.h"const char* filename = "E:\\beichun_small.jpg"; int main(int argc, char* argv[]){ CvMoments moments; CvHuMoments hu_moments; IplImage* image = cvLoadImage(filename); if (!image) { std::c
阅读全文
摘要:因为FANN是在C下编写的,对C++支持不好,开始建立C++文件,发现调用的时候出现了模板调用之类的错误,而运行FANN自带的VC6.0工程却正确运行,后来发现他们写的都是C文件。1.首先把fann-2.1.0下MicrosoftVisualC++6.0的all.daw用VC6.0打开,rebulid all2.建立新工程,把fann的include包含进去3.并把fann里面的libfann.lib放进当前文件夹下,否则会出现link错误4.新建main.c文件网络训练下面的例子展示了如何利用数据集训练网络,并保存网络:#include <stdio.h>#include &qu
阅读全文
摘要:FANN快速人工神经网络是一个免费开源库,它用C语言实现了多层神经网络。它包含一系列易于得到的训练集,而且易用,功能多,文档丰富。一些图形界面也可以从库中得到。FANN特点:在C下多层人工神经网络库反向传播训练动态创建和训练神经网络以进行拓扑训练易于使用(创建,训练和运行一个神经网络只用三个函数)快(比其他库的执行快150倍)通用(可以调整许多参数和功能)有据可查几种不同的激活功能易于保存和加载整个人工神经网络几个简单的使用例子可以使用浮点和定点数字(float, double and int都可以)缓存优化开源的,但仍然可以在商业应用容易处理的训练数据集的框架图形界面
阅读全文
摘要:1)通过菜单工程/选项,打开设置属性页,进入 Directories 页面,在目录下拉列表框中选择Include files,添加路径:"C:\matlab\extern\include"(假定 matlab 安装在C:\matlab 目录) 。2)选择 Library files,添加路径:C:\matlab\extern\lib\win32\microsoft\msvc60。3)通过菜单工程/设置,打开工程设置属性页,进入 Link 页面,在 Object brary modules编辑框中,添加文件名 libmx.lib libmat.lib libeng.lib不过
阅读全文
摘要:写了一段代码,“123.456”倒是可以,长点的数据貌似就不行啦:#include <iostream>#include <string>int my_power(int n){ int temp = 1; while (n--) temp *= 10; return temp;}float string_to_float(std::string s){ int n = s.size(); int i = 0; float temp1 = 0.0f,temp2=0.0f; while (i < n && s[i] != '.') {
阅读全文
摘要:从去年7月份到现在1年多了有木有,就为了得到这种神马分类图的有木有?现在搞到了,不过感觉这么没技术水平的有木有?现在贴出来好好观摩下,以后就照这个慢慢发展的有木有?
阅读全文
摘要:an for the object of samplify, i only choose 3 classes while 2 samples for each class ,there are 18 features in every sample .train_data=load('E:\sample_feature.txt');train_label=load('E:\train_label.txt');test_data=load('E:\features.txt');k=knnclassify(test_data,train_data,t
阅读全文
摘要:1. 样本集的整理:提取特征,以LIBSVM指定格式存储。2. 特征的标准化处理:特征的缩放Scaling,避免量纲的影响。3. 选择合适的核函数类型4. 优选核函数的参数与C采用:交叉验证(或留一法)、grid-search5. 基于优选的参数,利用训练集,进行SVM模型的训练6. (预测)分类器的性能测试 7. 分类摘自 人工智能论坛jink2005版主
阅读全文
摘要:样本和数据应该分开;策略:1.首先选择样本,并在数组中记录ID2.保存数据特征时进行重复性判断保存即可。伪代码:choose samplevector vt<- sample_region_ID && File sample_file <- sample_featuresave featuressearch in vt if not in vt then save features
阅读全文
摘要:果然是是科研人才啊:都是很技术的话题,我整理了一下,废话给省了(黑体字是我说的,红体字是那位大牛说的)问个问题啊:有篇博客上说:“调整权重时,SVM是全局最优,ANN是局部最优”怎么理解啊 ANN得到的几乎永远是局部最优 , ANN的optimization是非凸的。 除非使用极个别的输入函数,ANN才可能是凸的。SVM的optimization是凸的,很容易得到全局最优。 全局最优和局部最优 对分类有什么影响吗 对于实际性能来说,区别不大。,凸的模型很容易受到complexity的限制。 SVM复杂度,它的优势不是处理高纬空间吗 ,通过核函数以内积形式映射到高维空间,不是不怕复杂吗 普通的r
阅读全文
摘要:http://zllxsha.blog.163.com/blog/static/50555091201010981932412/bypiglet在网上找了很久关于libsvm 在vc上的移植,网上大部分讲的都是两类的分类在此分享下,我实现了多类的分类代码对于提取的数据,可能在部分的地方需要修改,比如样本的个数等当然,工程中需要包含svm.h,svm.cpp代码如下:#include <stdio.h>#include <ctype.h>#include <list>#include "svm.h" //包涵本目录下的SVM.H头文件#in
阅读全文
摘要:libsvm内部规定了标准格式:1 1:203 2:197 3:190 4:188 5:22372 1:204 2:196 3:190 4:186 5:22283 1:203 2:196 3:190 4:186 5:22424 1:204 2:197 3:191 4:188 5:2265 我现在保存的数据时:15 292.076 368.5060 9878.14 6384.541 2552.04 1975.082 7068.21 3751.983 38925.4 28155.55 6546.16 6190.88 ...
阅读全文
摘要:就是光滑度和紧致度,这个实现起来还是比较简单的,不过不知道这两个特征作用到底有多大啊!
阅读全文
摘要:它是插入排序的改进版,看比较://插入排序void insert_sort(int *arr,int n){ //priot为了保存哨兵元素 int pviot = 0, j = 0; //第一个元素有序,因此从i=1开始 for (int i = 1; i < n; ++i) { pviot = arr[i]; j = i-1; //如果哨兵元素之前的元素比自己大,则不断移位 while(j >= 0 && arr[j] >= pviot) { my_swap(arr[j],arr[j+1]); --j; } //放置哨兵元素到适当位置 arr[j+1] =
阅读全文
摘要:by pluskid, on 2010-09-08, inMachine Learninghttp://blog.pluskid.org/?p=632本文是“支持向量机系列”的第一篇,参见本系列的其他文章。支持向量机即Support Vector Machine,简称 SVM 。我最开始听说这头机器的名号的时候,一种神秘感就油然而生,似乎把 Support 这么一个具体的动作和 Vector 这么一个抽象的概念拼到一起,然后再做成一个 Machine ,一听就很玄了!不过后来我才知道,原来 SVM 它并不是一头机器,而是一种算法,或者,确切地说,是一类算法,当然,这样抠字眼的话就没完没了了,比
阅读全文
摘要:在网上找了一下,在群里网友说用什么hook,搜了一下,hook基本上截获鼠标或控件的消息,但是我是要实现在OnLButtonDown全局事件里捕获某控件被点击的消息,突然在CSDN中搜到了一篇说是可以在OnCommand()中设置全局标志位,然后根据标志位就可以知道此控件是否被点击了。的确,很有效,伪代码:void C**View::OnXX() { // TODO: Add your command handler code here XX_clilk = true;}实现了监视,但是测试时还是遇到了点问题,以后再慢慢调试吧,呵呵,今天搞到这里。
阅读全文
摘要:因为最终分类可视化的要求,所以要把分类后的区域以跟样本区域相同的颜色去填充,这样就可以直观地得到分类效果图。主要思想:1.输出区域ID及其特征(颜色、纹理、形状等);2.人机交互选择样本,为了方便起见,X个地物均选择Y个样本,总共是X*Y个样本容量;3.建立分类器对所有区域进行类别标定。4.提取区域region_ID和类别号class_ID,并保存成class_result.txt文件格式(在这里选择了“region_IDclass_ID”的保存格式)5.读取class_result.txt,目的:映射回原图像区域进行填充。在这里写了一个函数: std::ifstream class_file
阅读全文
摘要:之前保存分割区域特征值,结果看全部区域都保存了,很没必要,只需要把最终区域保存下来就行了,在这里用了一个vector保存区域ID,然后对整张图进行循环查找判断伪代码:for i[0,hight]for j[0,width]vector vcr;get curRegionID;if vcr.find(curRegionID) == falsevcr.pushback(curRegionID);savecurRegion feature;经调试正确。
阅读全文
摘要:鉴于libSVM中的readme文件有点长,而且,都是采用英文书写,这里,我把其中重要的内容提炼出来,并给出相应的例子来说明其用法,大家可以直接参考我的代码来调用libSVM库。第一部分,利用libSVM自带的简易工具来演示SVM的两类分类过程。(以下内容只是利用libSVM自带的一个简易的工具供大家更好的理解SVM,如果你对SVM已经有了一定的了解,可以直接跳过这部分内容)首先,你要了解的是libSVM只是众多SVM实现版本中的其中之一。而SVM是一种进行两类分类的分类器,在libSVM最新版(libSVM3.1)里面,已经自带了简单的工具,可以对二分类进行演示。以windows平台为例,将
阅读全文
摘要:插入排序:简单来说,对一个序列,无序的元素一个个地插入已排序的部分。C++实现:#include<iostream>//交换数据inline void my_swap(int &a, int &b){ int temp = a; a = b; b =temp;}//插入排序void insert_sort(int *arr,int n){ //priot为了保存哨兵元素 int pviot = 0, j = 0; //第一个元素有序,因此从i=1开始 for (int i = 1; i < n; ++i) { pviot = arr[i]; j = i-1;
阅读全文
摘要:快速排序学习的这个版本的特点是:1.原地排序2.采用了分治法3.采用递归伪代码:quick_sort(arr, low, high)i <-low, j <- high;mid <- (i+j)/2;实现从小到大排//设置哨兵pivot <- arr[mid];while i<= j从左向右寻找大于哨兵的元素,当然小于哨兵的就是无需排序的while arr[i] < pivot ++i;从右向左寻找小于哨兵元素while arr[j] > pivot --j;把寻找到的无序值进行交换并更新i,jif i <= j swap(arr[i],arr[
阅读全文
摘要:伪代码:int put list[1->n];for i <- n to 1 for j = 0 to i-1 if list[j]>list[j+1] swap(list[j],list[j+1])C++实现:#include<iostream>//交换数据inline void my_swap(int &a, int &b){ int temp = a; a = b; b =temp;}//冒泡排序void bubble_sort(int *arr,int n){ for (int i = n-1; i >= 0; --i) for (i
阅读全文
摘要:快速排序Quicksort is a fast sorting algorithm, which is used not only for educational purposes, but widely applied in practice. On the average, it has O(n log n) complexity, making quicksort suitable for sorting big data volumes. The idea of the algorithm is quite simple and once you realize it, you can
阅读全文
摘要:解决方法很简单1、确认安装有VC2、如果安装有VC,在出现Please choose your compiler for building external interface (MEX) files: Would you like mex to locate installed compilers [y]/n? 的时候输入n3、此时会列出matlab支持的编译器[1] Intel C++ 9.1 (with Microsoft Visual C++ 2005 SP1 linker) [2] Intel Visual Fortran 10.1 (with Microsoft Visual C+
阅读全文
摘要:原始数据输入spass:View Code 0.25 1200.000.30 1000.000.35 900.000.40 800.000.45 700.000.50 600.000.55 550.000.60 500.000.65 450.000.70 400.000.75 350.000.80 300.000.85 250.000.90 200.000.95 150.001.00 100.00然后进行回归分析:把自变量和因变量拖进相关行,点击确定:双击自动产生的回归图:双击曲线,就出现属性窗口,最后就看到拟合方程了:ok!就是这样!
阅读全文
摘要:转自http://superjiju.wordpress.com/2008/04/07/cc-%E7%9B%B8%E5%85%B3%E7%AC%94%E8%AF%95%E9%A2%98%EF%BC%881%EF%BC%89/1. static有什么用途?(请至少说明两种)答 、1.限制变量的作用域。 2.设置变量的存储域。2. 引用与指针有什么区别?答 、1) 引用必须被初始化,指针不必。 2) 引用初始化以后不能被改变,指针可以改变所指的对象。 3) 不存在指向空值的引用,但是存在指向空值的指针。3. 描述实时系统的基本特性 答 、在特定时间内完成特定的任务,实时性与可靠性。4. 全局变量和
阅读全文
摘要:题目截图:直接上代码,没时间啦,明天就笔试啦:#include <iostream>#include <string>using namespace std;string alphabet = "abcdefghijklmnopqrstuvwxyz";char replace_char(char s){ for (size_t i = 0; i < alphabet.size();++i) { if(s == alphabet[i]) return alphabet[(i+3)%26]; } return s;}void coding(stri
阅读全文
摘要:by jl http://apple3101.wordpress.com/2009/04/09/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E5%A4%AA%E7%AE%80%E5%8D%95%EF%BC%9F/机器学习没有一个统一的问题,各种方法之间的重合太少,因此研究一种方法可以不用了解或深究其他方法。没有一种方法是万能的,对于具体问题,可能这种方法好,对于另一个问题,可能另一种方法更好。这种现象造成了:在特定的问题上的机器学习方法,经常是最先用的那个。分析机器学习的方法受一些为它而设计的假设而限制;因此很多文章都力图找到能出好结果的假设。有几种研究机器学习的
阅读全文
摘要:看了别人其他的实现,代码如下:void CHC::SaveSeg(GDALDataset *m_pDataset,CString pathname){ int len = pathname.ReverseFind(_T('.')); CString name1 = pathname.Left(len); int L=Height*Width; int x,y,d,sernum,label; int nByteWidth=d_*Width; float* buf =new float[Width*Height]; GDALRasterBand *m_pBand=NULL; for
阅读全文
摘要:#include<iostream>using namespace std;struct node{ int data; node *next;};class List{public: List(); List(List &L); ~List(); void insert(const int); bool IsEmpty(); size_t ListLen(); int GetElem(size_t); void append(size_t,int);//在第i个位置插入数值 void Display(); void remove(size_t); int FindElem
阅读全文
摘要:最近发现wordpress上很多有意思的技术博客,但奇怪的是用google几乎无法之家搜到,今天各种找方法:1.关键词+powered by wordpress;找到了继续添加!2.按照http://www.arongseo.com/archives/366提高的信息,在google上添加了自己的wordpress搜索,首先打开google自定义搜索界面http://www.google.com/cse/?hl=zh-CN,并点击“创建自定义搜索引擎”然后按照自己的需要填写:然后添加进自己的igoogle:,搞定,更牛叉的是因为我用的火狐的搜索引擎插件,所以直接再添加进去就更方便了:就这样,O
阅读全文
摘要:K Nearest Neighbors这个算法首先贮藏所有的训练样本,然后通过分析(包括选举,计算加权和等方式)一个新样本周围K个最近邻以给出该样本的相应值。这种方法有时候被称作“基于样本的学习”,即为了预测,我们对于给定的输入搜索最近的已知其相应的特征向量。CvKNearestclass CvKNearest : public CvStatModel //继承自ML库中的统计模型基类{public: CvKNearest();//无参构造函数 virtual ~CvKNearest(); //虚函数定义 CvKNearest( const CvMat* _train_data, const
阅读全文
摘要:http://idlandrs.bokee.com/viewdiary.34994406.html没想到这么简单:直接鼠标点击中键。5555555,我一直以为画得时候可以这样,画完后就不行了。一直小心翼翼地画。
阅读全文
摘要:转http://blog.sciencenet.cn/home.php?mod=space&uid=205121&do=blog&id=322415最近写论文,很困惑的是:为啥那些那些大牛的文章(发表在大牛刊物上的文章,倒未必是大牛写的了),怎么能写出那么多对实验结果的分析?洋洋洒洒的一大段,篇幅甚至超过算法本身的描述。而我自己写的时候,把结果一帖:两个数据上的几条曲线:分析就是,验证了我的算法,比某某方法好,然后写啥?就不知道了,干巴巴的就那几句?篇幅都凑不够,明明知道应该写更多,可是不知道如何下手?怎么办怎么办?请各位大牛出招。======黄金分割线========
阅读全文
摘要:int CImageDoc::lookregion(int cx,int cy,int option){ int mh=m_DIB.m_nHeight,mw=m_DIB.m_nWidth; if(cx<0||cy<0||cx>(mw-1)||cy>(mh-1)) { AfxMessageBox("Click on the map!"); return -1; } curRegion=m_HC.tag[cy*mw+cx]; if(curRegion<0) { AfxMessageBox("tag array of region labe
阅读全文
摘要:函数cvDrawContours用于在图像上绘制外部和内部轮廓。当thickness >= 0 时,绘制轮廓线;否则填充由轮廓包围的部分。void cvDrawContours( CvArr *img, CvSeq* contour, CvScalar external_color, CvScalar hole_color, int max_level, int thickness=1, int line_type=8, CvPoint offset=cvPoint(0,0) );img要在其上绘制轮廓的图像。和在其他绘图函数里一样,轮廓是ROI的修剪结果。contour指向第一个轮廓的
阅读全文