- 博客(37)
- 资源 (8)
- 收藏
- 关注
原创 笔试的一些题目
1:怎么防止头文件重复引用?为什么?#ifndef _MY_FILE_#def _MY_FILE_........#endif _MY_FILE_ 2:指针和引用的区别?① 非空区别,在任何情况下都不能使用指向空值的引用,一个引用必须总是指向某些对象。所以如果你使用一个变量并让它指向一个对象,但是该变量在某些时候也可能不指向任何对象,这时应该将这个变量声明为指针
2015-09-07 15:34:03
860
原创 内存分配不成功导致内存泄漏的问题
内存泄漏是在写程序中容易发生的问题,所以解决内存泄漏问题至关重要,在这里我推荐一个内存泄漏的自动化检测软件:visual leak detector,非常好用的一个软件#include void GetMemory(char *p, int num){p = (char *)malloc(sizeof(char) * num);}int main(){ch
2015-08-25 10:29:23
929
原创 引用和指针的差别?
1:非空区别,在任何情况下都不能使用指向空值的引用。一个引用必须总是指向某些对象。所以如果你使用一个变量并让它指向一个对象,但是该变量在某些时候也可能不指向任何对象,这时应该将这个变量声明为指针,这样就可以给这个变量赋值;相反如果这个变量肯定指向一个对象,并且这个对象不允许为空,那么就应该声明为引用,引用的效率要高于指针效率;2:合法性区别,我们在写代码的时候,对于指针通常要进行非空验证,if
2015-08-25 10:00:04
876
原创 a、b交换的几种方法(不采用中间变量)
第一种采用加法:a = a + b;b = a - b;a = a - b;采用加法的一个缺点就是当a, b值都很大的时候容易产生越界因此就有了更安全的方法第二种采用异或a = a^b;a = a^b;a = a^b;
2015-08-24 15:35:08
849
原创 如何判断一个数的二进制有多少个1
下面给出计算代码:#include using namespace std;int foo(int x){ int count = 0; while(x) { count++; x = x&(x - 1); } return count;}int main(){ cout << foo(500) << endl;}举一反三 如何判断一个数是不
2015-08-24 15:24:50
3299
原创 (x&y)+((x^y)>>1)
程序员面试宝典中(x&y)+((x^y)>>1)的结果分析:首先先看看数据的三种对应情况1) 0 与 0对应2) 0 与 1对应3) 1 与 1对应所以得到1、是x,y对应位都是1,既1&1 = 1,,也就是(x+y)/2;2、是x,y中对应位有且只有一位是1,用(x^y)相当于计算这些位的和,>>1相当于除2;3、是x,y中对应
2015-08-24 15:13:17
662
原创 利用opencv中的级联分类器进行人脸检测-opencv学习(1)
OpenCV支持的目标检测的方法是利用样本的Haar特征进行的分类器训练,得到的级联boosted分类器(Cascade Classification)。注意,新版本的C++接口除了Haar特征以外也可以使用LBP特征。先介绍一下相关的结构,级联分类器的计算特征值的基础类FeatureEvaluator,功能包括读操作read、复制clone、获得特征类型getFeatureType,分配图片
2014-07-07 08:51:32
5020
1
转载 推荐几个免费的国外图像库,数字图像处理必备
原文地址:http://blog.sina.com.cn/s/blog_53c74fa1010002pn.html做数字图像处理的,怎能没有一个图库?虽说自己可以建立,可是如果是比较知名的图库,做出来的实验结果才能比较让人信服。coral是很有名,可他要收费。我寻寻觅觅,还是找到了一些图库,有的是纯texture图库,比如著名的vistex,有的是faceimages,有的也有RGB真彩色
2014-06-22 18:32:12
1688
原创 图像处理与计算机视觉开源软件库及学习网站
1.OpenCv(计算机视觉必学的库,个人认为其作用相当强悍)http://opencv.willowgarage.com/wiki/2.CVpaper 主页上推荐的开源视觉算法库,最全的了,也非常新,强烈推荐大家去看看http://www.cvpapers.com/rr.html3.cmu的图像处理和计算机视觉软件库,非常全,但有点老了,但都很经典,资源非常丰富http://
2014-06-16 16:44:12
2225
原创 C++中计算程序运行的时间
首先定义clock_t start, end;然后在自己要测试那段代码的前面加上start = clock(); 结尾加上end = clock();最后用输出语句进行 cout cout
2014-06-13 15:39:12
922
原创 图像拼接中的RANSAC算法
RANSAC(Random Sample Consensus)即随机采样一致性,对SIFT算法产生的128维特征描述符进行剔除误匹配点。 首先,从已求得的配准点对中抽取几对配准点,计算变换矩阵,并将这几对点记录为”内点”。继续寻找配准点对中的非内点,若这些配准点对符合矩阵,则将其添加到内点。当内点中的点对数大于设定阈值时,则判定此矩阵为精确的变换矩阵。依照以上方法,随机采样 N 次
2014-06-05 13:38:00
5757
2
原创 双边滤波和引导滤波的原理
双边滤波很有名,使用广泛,简单的说就是一种同时考虑了像素空间差异与强度差异的滤波器,因此具有保持图像边缘的特性。先看看我们熟悉的高斯滤波器其中W是权重,i和j是像素索引,K是归一化常量。公式中可以看出,权重只和像素之间的空间距离有关系,无论图像的内容是什么,都有相同的滤波效果。再来看看双边滤波器,它只是在原有高斯函数的基础上加了一项,如下其中 I 是像素的强度值,所
2014-05-06 15:59:37
4888
转载 integral image(积分图) 和 boxfilter
在模式识别领域,Haar特征是大家非常熟悉的一种图像特征了,它可以应用于许多目标检测的算法中。与Haar相似,图像的局部矩形内像素的和、平方和、均值、方差等特征也可以用类似Haar特征的计算方法来计算。这些特征有时会频繁的在某些算法中使用,因此对它的优化势在必行。Boxfilter就是这样一种优化方法,它可以使复杂度为O(MN)的求和,求方差等运算降低到O(1)或近似于O(1)的复杂度,它的缺点是
2014-05-06 10:32:23
17359
1
原创 双边滤波器(一)
双边滤波(Bilateral filter)是一种非线性的滤波方法,是结合图像的空间邻近度和像素值相似度的一种折衷处理,同时考虑空域信息和灰度相似性,达到保边去噪的目的。具有简单、非迭代、局部的特点。双边滤波器的好处是可以做边缘保存(edge preserving),一般过去用的维纳滤波或者高斯滤波去降噪,都会较明显地模糊边缘,对于高频细节的保护效果并不明显。双边滤波器顾名思义比高斯滤波多了一
2014-05-03 17:48:42
10738
转载 DM642视频采集程序注释
DM642学习笔记实验5.6-5.19 视频驱动程序应用DM642视频驱动程序的注释:/* * Copyright 2003 by Texas Instruments Incorporated. * All rights reserved. Property of Texas Instruments Incorporated. * Restricted rights
2014-05-03 17:43:10
1269
转载 extern "C"的用法解析
1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有
2014-04-01 21:05:28
584
原创 图像的缩放
一:使用系统默认的插值法(双线性插值)#include #include #include int main(int argc, char* argv[]){ IplImage *src = 0; //源图像指针 IplImage *dst = 0; //目标图像指针 float scale = 2.0; //缩放倍数为2倍 CvS
2014-02-24 16:53:37
753
原创 如何使用迭代器遍历图像
#include "opencv2/opencv.hpp"using namespace cv;void setAllWhiteUchar(Mat& src){ Mat_::iterator begin,end;//单通道 //获取迭代器对象 begin = src.begin(); end = src.end(); //遍历图像 while(begin != end)
2014-02-24 15:48:44
1555
原创 图像处理和图像识别中常用的OpenCV函数
图像处理和图像识别中常用的OpenCV函数:1、cvLoadImage:将图像文件加载至内存;2、cvNamedWindow:在屏幕上创建一个窗口;3、cvShowImage:在一个已创建好的窗口中显示图像;4、cvWaitKey:使程序暂停,等待用户触发一个按键操作;5、cvReleaseImage:释放图像文件所分配的内存;6、cvDestroyWindow:销毁显示图
2014-02-22 21:41:31
837
原创 图像变换——计算机视觉图像处理
一、仿射变换 仿射变换的性质:平面上任意两条直线,经仿射变换后,仍然保持平行。仿射变换的功能,是一种二维坐标到二维坐标之间的线性变换,保持二维图形的“平直性”(straightness,即变换后直线还是直线不会打弯,圆弧还是圆弧)和“平行性”(parallelness,其实是指保二维图形间的相对位置关系不变,平行线还是平行线,相交直线的交角不变)。仿射变换可以通过一系列的原子变
2014-02-22 20:54:38
3106
原创 常用的图像去噪方法
一:常用的噪声有高斯噪声,椒盐噪声,泊松分布噪声,指数分布噪声。二:空域滤波器如均值滤波器,中值滤波器,低通滤波器,高斯滤波,双边滤波,引导滤波。 频域滤波器如小波变换,傅里叶变换,余弦变换,形态学滤波(通过膨胀和腐蚀等形态学进行去噪)。三:应用 均值,中值,低通,高斯去高斯白噪声,中值滤波可去椒盐噪声。 双边,引导保边去噪。 低噪度下,拍出的图片属于泊
2014-02-22 20:08:05
9471
1
原创 图像变换——仿射变换
在做图像处理中有两中情况会用到图像变换,第一种就是有一副自己想要转换的图像,第二种就是我们有一个点序列并想以此计算出变换,那么我用到的是在图像拼接中的点变换,通过提取两幅要拼接图像的关键点,利用欧式距离筛选后得到具有鲁棒性的候选点。利用这些点计算出需要变换的矩阵,进而进行图像拼接。拉伸、收缩、扭曲、旋转是图像的几何变换,在三维视觉技术中大量应用到这些变换,又分为仿射变换和透视变换。仿射变换通常
2014-02-22 16:45:09
14850
转载 cvLoadImage,cvCloneImage的内存泄露问题
针对openCV中,隐蔽的内存泄露,大家需要重视,拯救为数不多的内存,拯救应用程序的速度 在做项目的过程中,使用OpenCV经常会出现一些内存泄露问题,自己编写的程序出现问题还情有可原,但若是库函数调用和使用时出现,却很令我恼火。花了好长时间和实践的经验告诉我应该客服它。下面把一些检测出的问题进行化解。(可能是水平不够,这些函数使用不当,望高手指点) cvLo
2014-02-22 16:13:58
767
原创 win7,win8,32位,64位下vs2012如何永久配置opencv2.4.6
无论你的系统是win7还是win8,无论是32位的还是64位的系统,按一下的方法配置几乎都是会成功的。刚接触opencv和vs的时候在网上找了很多关于如何如何配置的教程,但是很容易出问题,有的是配置完后会提示找不到core246.dll或每建一个工程都要进行配置,一度让我很头疼。自己重装win8后再网上看了不少教程最后总结出下面的教程。第一步:vs2012的下载和opencv的下载,这些都
2014-02-11 21:27:19
1881
原创 imagic 蓝牙灯
还在为半夜抹黑找不到壁灯开关而烦恼?还在为家居灯色太过单调而无聊?还在担心灯光光线太强而损害眼睛?……这些之于iMagic ,统统都是不问题,只要你拥有一支iMagic蓝牙灯,便开启了属于你的魔灯时刻。随着无线射频技术的发展,衍生出了很多新颖的应用,无线LED灯控就属于极其典型的一种,其中涉及的无线技术有wifi、zigbee和bluetooth,而与这些技术衔接的主体,便是我们的
2014-02-11 11:40:25
1317
原创 关于matlab中图像太大只能缩小显示问题的解决
在做图像拼接过程中,由于图像在拼接完后很大,matlab通常会显示Image is too big to fit on screen; displaying at 33% ,那么你想看图像拼接后的原图细节怎么办呢?解决方法如下: 将图像显示的imshow(imge0)改成imtool(uint8(img0));在出来的界面中可以调节
2013-11-26 12:05:07
36321
6
原创 关于CvvImage程序
Opencv 2.2以上的版本不再包含CvvImage类,可有时我们的程序仍然需要CvvImage类,特别进行图像的拷贝、显示等操作的时候。如果用到这个类只要在工程中加入CvvImage.h和CvvImage.cpp就可以了下面的源码是从网上找到的。CvvImage.h#ifndef CVVIMAGE_CLASS_DEF#define CVVIMAGE_CLASS_DEF#i
2013-11-24 17:07:02
1936
原创 使用vs2012配置opencv编译出现问题:error C4996: 'fopen': This function or variable may be unsafe.
使用vs2012配置opencv编译出现问题:error C4996: 'fopen': This function or variable may be unsafe.编译结果如下:1>------ 已启动生成: 项目: LoadPicture, 配置: Debug Win32 ------1> stdafx.cpp1> LoadPictureDlg.cpp1>d:\open
2013-11-24 17:00:38
27414
1
原创 VS2012配置OPENCV246
1.环境变量设置 添加系统变量:变量名: OPENCV246_DIR 变量值:C:\opencv\build\x86\vc11(存放文件的路径)因人而异 变量名: PATH 变量值:%OPENCV246_DIR%\bin 将opencv下得include文件拷到C:\opencv\build\x86\vc11下2
2013-11-24 16:53:03
2718
1
原创 图像拼接技术概述
图像拼接就是把针对同一场景的相互有部分重叠的一系列图片合成一张大的宽视角的图像. 拼接后的图像要求最大程度地与原始图像接近, 失真尽可能小, 没有明显的缝合线. 图像拼接技术在宇宙空间探测、海底勘测、医学、气象、地质勘测、军事、视频压缩和传输, 档案的数字化保存, 视频的索引和检索, 物体的 3-D 重建, 军事侦察和公安取证, 数码相机的超分辨处理等领域都有广泛的应用. 主要表现
2013-11-23 11:52:12
4509
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人