自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Maryhuan的博客

坚持才是硬道理

  • 博客(38)
  • 资源 (1)
  • 收藏
  • 关注

原创 windows下qt5.8.0配置opencv 3.1

2017-4-17 windows下qt5.8.0配置opencv 3.1 我的环境:win7+qt5.8.0+qtcreator4.2.1+opencv3.1和在VS下配置是一样的,主要有三部分需要配置:环境变量(bin)、库目录(lib)、包含目录(include)我的opencv安装路径是C:\opencv 1. 把C:\opencv\build\x64\vc12\bin加入环境变量

2017-04-17 17:20:15 2174

原创 linux 在线和离线安装Mplayer视频播放器

Mplayer安装

2017-04-14 14:49:17 3749

转载 QImage和Mat相互转化

2017-04-07QImage —> MatQImage cvMat2QImage(const cv::Mat& mat){ // 8-bits unsigned, NO. OF CHANNELS = 1 if(mat.type() == CV_8UC1) { QImage image(mat.cols, mat.rows, QImage::Format_

2017-04-06 15:42:04 1429

原创 vs2015+Qt5.8+opencv 显示一幅图像

2017-04-06配置opencv在搭建好Qt5.7和Vs2015后,配置opencv,我使用的是opencv3.1。 右击项目》》属性》》VC++目录》》配置包含目录和库目录。 在包含目录中添加: D:\opencv\opencv\build\include D:\opencv\opencv\build\include\opencv D:\opencv\opencv\build\inc

2017-04-06 12:45:27 4898 1

原创 Qt5.7 + VS2015新建一个工程

2017年4月5日17:49:31 编译环境: VS2015+Qt5.8 环境搭建请参考Qt5.7 + VS2015 环境搭建,写的很详细 新建项目 如图选择Qt GUI Application,然后一路next直到finish。我创建了一个名为myTest的工程。 创建完成以后会自动生成所必需的文件,项目的目录结构如下图所示: myTest.ui是窗体文件可以通过双击打开使用Qt

2017-04-06 11:13:32 4547

原创 kaiming he 暗通道去雾和导向滤波

何凯明博士目前已经加入Facebook AI Reserach ,他的blog地址:http://kaiminghe.com/暗通道论文下载地址:http://kaiminghe.com/publications/cvpr09.pdf导向滤波论文下载地址:http://kaiminghe.com/publications/eccv10guidedfilter.pdf目前导向滤波已经加入

2017-03-20 10:48:21 8271

原创 openstack 单节点快速安装部署

安装openstackyum install -y centos-release-openstack-newtonyum update -yyum install -y openstack-packstackpackstack --gen-answer-file=answer.txt #vim answer.txt        可以编辑配置文件(对云计算构架的项目选择修改密码

2017-01-04 16:19:07 11607

原创 多通道图像遍历

方法一:普通遍历for(int y = 0;y < height; y++)//行 { for(int x = 0; x < width; x++)//列 { Scalar pix = srcImg.at(y,x); int channle0 = pix[0]; int channle1 = pix[1]; int channle2 = pix[2];

2016-05-06 11:57:04 1823 2

原创 生成动态链接库dll和调用

上一文中详细介绍如何生成静态链接库,生成动态库的过程与它基本相似。主要步骤:1.创建一个dll文件首先新建一个win32控制台应用程序,点击确定。点击“下一步”。选择dll”选项。完成即可,本文中名为mydll。(图片参考上文)如果你新建的是一个windows应用程序,可以右击点击属性,在“配置类型”中点击“动态库”2.编辑mydll工程添加.h文件和.cpp文件。添加的类

2015-01-15 11:44:37 537

原创 详解生成静态链接库lib文件和调用

一个解决方案很复杂的时候,有很多的.h文件和.lib文件,很容易混乱。将一个解决方案分成多个工程,有的工程用来生成静态链接库.lib或者动态链接库.dll,有的用来做主函数进行调用,思路清晰,用起来也很方便。本节讲如何生成静态链接库。1.建立一个静态链接库首先新建一个win32控制台应用程序,点击确定。点击“下一步”。选择“静态库”选项。完成即可。(本文中该项目库名称为lib)

2015-01-15 11:30:01 2882

转载 VS2012外接程序VMDebugger未能加载或导致了异常

故障现象:打开Visual Studio 2010后弹出错误框,外接程序VMDebugger未能加载或导致了异常,是否希望移除该外接程序,错误号:80004005。系统版本:WIN8.1 64位企业版,安装了Resharper8.1,破解。 解决办法:修改下注册表文件解决。在电脑“运行”中输入regedit,进入注册表HKEY_LOCAL_MACHINE\SOFTW

2015-01-13 15:06:32 6798 2

转载 漫谈:机器学习中距离和相似性度量方法

在机器学习和数据挖掘中,我们经常需要知道个体间差异的大小,进而评价个体的相似性和类别。最常见的是数据分析中的相关分析,数据挖掘中的分类和聚类算法,如 K 最近邻(KNN)和 K 均值(K-Means)等等。根据数据特性的不同,可以采用不同的度量方法。一般而言,定义一个距离函数 d(x,y), 需要满足下面几个准则:1) d(x,x) = 0                    // 到自己的

2014-04-21 10:59:34 961

转载 数据结构--栈和队列

栈和队列 1. 栈  只在表的一端访问元素的表,其元素只能从栈顶端增加或删除。设计存放那些只能从一端访问的元素。  增加(压入push):栈顶增加元素  和删除(弹出pop):栈顶删除元素  后进先出原则(LIFO)  栈满:栈已达到处理元素个数的最大值。 栈空:无法从栈中删除元素。 2.类Stack  数组存放栈元素。栈对象说明包括栈大小,

2014-04-10 16:57:52 913

转载 const的作用和使用方法

C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助。Const 是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。 一、Const作用   如下表所示:No.作用说明参考代码

2014-04-03 15:41:54 965

原创 变量的存储类型

存储类型是从变量的存在时间(即生存期)来划分变量。变量的存储类型可分为静态存储方式和动态存储方式。对于动态存储变量,当程序运行到该变量处时才为其分配存储空间,当程序运行到该变量所在作用域的结束处时自动收回为其分配的存储空间,因此它的生存期为所在作用域。在程序开始就执行就为其分配存储空间,直到程序结束时,才收回变量的存储空间,这种变量称为静态存储空间,其生命周期为整个程序执行的过程。

2014-04-01 20:25:04 1161

原创 c++中map的使用

Map是c++的一个标准容器,她提供了很好一对一的关系,在一些程序中建立一个map可以起到事半功倍的效果,总结了一些map基本简单实用的操作!map的基本操作函数:C++ Maps是一种关联式容器,包含“关键字/值”对begin() 返回指向map头部的迭代器clear() 删除所有元素count() 返回指定元素出现的次数empty() 如果map

2014-03-28 16:17:56 573

转载 c++内存分配方式详解——堆、栈、自由存储区、全局/静态存储区和常量存储区

栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。在一个进程中,位于用户虚拟地址空间顶部的是用户栈,编译器用它来实现函数的调用。和堆一样,用户栈在程序执行期间可以动态地扩展和收缩。  堆,就是那些由 new 分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个 new 就要对应一个 delete。如果程序员没

2014-03-28 15:58:49 654 1

原创 python中自定义包的导入和使用

包(packages)其实也是模块,其类型Type也是module。通常引用自定义模块时有两种方法:1)将两个文件放在同一目录下。2)在sys.path下添加要引用的py文件的路径。然后import。这样的做法,对于少数文件是可行的,但如果程序数目很多,层级很复杂时就比较麻烦了。此时用package就能将多个py文件组织起来,类似于第三方包一样的引用。要方便很多。package

2014-03-25 11:39:58 15614

原创 python中自定义模块的导入

在python中所有py文件都是模块。即模块名+后缀.py。模块名可以由全局变量__name__得到。导入模块有两种方法:1.事先写好一个A.py文件,在另一个文件exam.py中需要import时,将事先写好的A.py文件拷贝到当前目录。2.在sys.path中增加事先写好的A.py文件所在的目录,然后import获得当前路径:os.getcwd()改变路径:os.chd

2014-03-25 11:37:36 1156

原创 解读图像傅里叶变换

傅里叶讲的是:任何信号(如图像信号)都可以表示成一系列正弦信号的叠加。傅里叶变换是数字图像处理技术的基础,其通过在时域和频域来回切换图像,对图像的信息特征进行提取和分析。在图像领域就是将图像亮度的变化作为正弦变量。         在冈萨雷斯版里面的解释就非常的形象:一个恰当的比喻是将傅里叶变换比作一个玻璃棱镜。棱镜是可以将光分解为不同颜色的物理仪器,每个成分的颜色由波长(或频率)来决定。

2014-03-21 10:35:22 2899

原创 VS2012+Qt5.1配置及入门(hello world)

Qt5.1安装后,安装Qt VS Addin插件。安装的Qt路径为c:/Qt1.环境变量的配置在我的电脑属性里找到环境变量,在path中添加bin。即C:\Qt\Qt5.1.0\5.1.0\msvc\bin在VS中配置,安装完插件以后,在Vs的菜单栏会有Qt5一项。点击》Qt option》Add在path中添加C:\Qt\Qt5.1.0\5.1.0\msvc2.建立第一个Qt界面

2014-03-19 15:37:14 1810

转载 opencv中Mat的数学运算和基本操作

一、矩阵Mat I,img,I1,I2,dst,A,B;double k,alpha;Scalar s;//是一个结构体,常用来存储像素,比如Scalar s; s=cvGet2D(pImg,x,y);s.val[0],s.val[1],s.val[2]就是对应的图像BGR的值1.加法I=I1+I2;//等同add(I1,I2,I);add(I1,I2,

2014-03-18 21:45:03 18428 1

原创 python中list去重

比较容易记忆的是用内置的setl1 = ['b','c','d','b','c','a','a']l2 = list(set(l1))print l2还有一种据说速度更快的,没测试过两者的速度差别l1 = ['b','c','d','b','c','a','a']l2 = {}.fromkeys(l1).keys()print l2这两种都有个缺点,祛除重复

2014-02-27 15:22:50 958

转载 关键字typedef用法

C/C++语言中的typedef相信大家已经不陌生,本文对C/C++语言关键字typedef的各种用法作一个介绍。typedef,顾名思义,为“类型定义”,可以解释为:将一种数据类型定义为某一个标识符,在程序中使用该标识符来实现相应数据类型变量的定义。例如:typedef unsigned int UINT;int main (int argc, char *argv[]){

2014-01-13 11:09:33 539

原创 python中的深拷贝与浅拷贝解析

一、赋值,传递对象的引用>>> a = [1, 2, 3, 4, ['a', 'b']]>>> b = a>>> b is aTrueb就是a ,两者同步改变二、浅拷贝>>> a = [1,2,3,[4,5]]>>> b = list(a)#######或者是b = copy.copy(a)>>> b[1, 2, 3, [4, 5]]>>> a is bFalse

2013-12-25 16:31:43 588

原创 python中文件读取操作详解

1.打开文件:>>> f = open(”d:test.txt”, “w”)第一个参数是文件名称,包括路径;第二个参数是打开的模式mode’r':只读(缺省。如果文件不存在,则抛出错误)’w':只写(如果文件 不存在,则自动创建文件)’a':附加到文件末尾’r+’:读写如果需要以二进制方式打开文件,需要在mode后面加上字符”b”,比如”rb”"wb” 等

2013-12-20 11:38:03 1275

原创 opencv中用Resize和图像金字塔改变尺寸的区别

resize和图像金字塔(pydown、pyup)都可以改变图像的大小。具体操作和区别如下:resizeC++: void resize(InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0, int interpolation=INTER_LINEAR )Python: cv2.resi

2013-12-04 16:36:39 8214

原创 python的调试技巧

1. print这是最简单的调试方法,直接显示程序数据。即便是调试Java或者C这种巨麻烦的编译语言,print仍然是常用工具。当然,我们讲的是Python,是比Java和C要方便100倍的动态解释语言,因此这个print就更有力了。2.使用IDLE的调试器在“Python Shell”窗口中单击“Debug”菜单中的“Debugger”菜单项,就可以启动IDLE的交互式调试器。这时,

2013-11-03 18:24:22 1663

原创 python之IDLE编辑器功能详细介绍

IDLE是python软件包自带的集成开发环境,可以方便的创建、运行和调试python程序。启动IDLE后先看到的是python shell,可以通过它在IDLE内部执行python命令。IDLE还带有一个编辑器,用来编辑python程序(或脚本);有一个交互式解释器用来解释执行Python语句;有一个调试器来调试Python脚本。下面我们从IDLE的编辑器开始介绍。一、IDLE的一些特性

2013-11-03 17:40:48 14993

原创 opencv中各模块介绍

自2.2版本后,opencv库被划分成多个模块。这些模块编译成库文件后,位于lib文件夹中。opencv_core模块:包含核心功能,尤其是底层数据结构和算法函数。opencv_imgproc模块:包含图像处理函数opencv_highgui模块:包含读写图像及视频的函数,以及操作图形用户界面函数opencv_features2d模块:包含兴趣点检测子,描述子以及兴趣点匹配框架open

2013-10-30 10:36:55 1499

原创 opencv自由抠图

此篇跟上篇画矩形框类似。画框改为画点。用floodfill和带有掩码的copyTo得到抠图。右击确定floodFill中的种子点。参考自http://blog.csdn.net/cv_yuippe/article/details/13035063// substr.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #inclu

2013-10-29 21:36:18 7103 1

原创 用setmousecallback在图片上画矩形框--鼠标事件

// substr.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #include using namespace std;using namespace cv;Rect select;bool select_flag = false;Mat img,showImg,selectI

2013-10-25 11:40:16 5827

原创 opencv中setMousecallback的用法

opencv中的鼠标响应的函数是setMouseCallback(),可以实现画图的功能。    c++: void setMousecallback(const string& winname, MouseCallback onMouse, void* userdata=0)    winname:窗口的名字    onMouse:鼠标响应函数,回调函数。指定窗口里每次鼠标时间发

2013-10-25 11:31:46 13896

原创 直方图均衡化(python实现)

直方图均衡化用途: 通常用来增加许多图像的全局对比度,尤其是当图像的有用数据的对比度相当接近的时候。通过这种方法,亮度可以更好地在直方图上分布。这样就可以用于增强局部的对比度而不影响整体的对比度,直方图均衡化通过有效地扩展常用的亮度来实现这种功能。这种方法对于背景和前景都太亮或者太暗的图像非常有用,这种方法尤其是可以带来X光图像中更好的骨骼结构显示以及曝光过度或者曝光不足照片中更好

2013-10-17 13:19:13 8403 4

原创 汉诺塔问题的python实现

汉诺塔问题是一个经典的递归问题。问题描述:  有一个梵塔,塔内有三个座A、B、C,A座上有诺干个盘子,盘子大小不等,大的在下,小的在上(如图)。把这些个盘子从A座移到C座,中间可以借用B座但每次只能允许移动一个盘子,并且在移动过程中,3个座上的盘子始终保持大盘在下,小盘在上。问题简化:把A柱子上的n个盘子移动到C柱子上,其中可以借助B柱。'''hanoi汉诺塔问题

2013-10-14 16:22:20 3789

转载 算法的时间复杂度详解

算法的时间复杂度是衡量一个算法效率的基本方法。在阅读其他算法教程书的时候,对于算法的时间复杂度的讲解不免有些生涩,难以理解。进而无法在实际应用中很好的对算法进行衡量。    《大话数据结构》一书在一开始也针对算法的时间复杂度进行了说明。这里的讲解就非常明确,言简意赅,很容易理解。下面通过《大话数据结构》阅读笔记的方式,通过原因该书的一些简单的例子和说明来解释一下算法的时间复杂度和它的计算方

2013-10-14 10:26:34 2614 2

原创 冒泡排序(升序和降序)的python代码实现

冒泡排序交换排序的基本思想是:两两比较待排序记录的关键字,发现两个记录的次序相反时即进行交换,直到没有反序的记录为止。应用交换排序基本思想的主要排序方法有:冒泡排序和快速排序。冒泡排序的编程思想有两种,浮上去和沉下来。沉下来:从前往后进行两两比较,将气泡较重的置到下方。def bubblesortDown(date):    length = len(date)

2013-10-13 12:09:24 5939

转载 c++构造函数详解

本文出自 “对影成三人” 博客,请务必保留此出处http://ticktick.blog.51cto.com/823160/194307c++构造函数的知识在各种c++教材上已有介绍,不过初学者往往不太注意观察和总结其中各种构造函数的特点和用法,故在此我根据自己的c++编程经验总结了一下c++中各种构造函数的特点,并附上例子,希望对初学者有所帮助。

2013-09-23 15:43:09 523

filter2D滤波

用python加载opencv库,做图像处理

2013-04-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除