自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Yuippe的专栏

新的起点新的开始

  • 博客(41)
  • 资源 (9)
  • 收藏
  • 关注

原创 图像的分块两栏的情况

这里的原图为:                                                                                                                      分块要求为:                                            原理为:从左到右,从上到下,进行填

2013-08-31 16:31:44 665

原创 opencv之图像搭桥法

这里演示的是水平和垂直搭桥:大致原理为:s(为白点的个数,并通过s是否为0来标记最初的白点io),当扫描到黑点时,在判断s是否在阈值类,如果在,则将这段白点用直线画黑线,反正不画。代码如下:// a4.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include using namespace cv;using namespace

2013-08-29 22:12:55 726

原创 Strategy pattern in algorithm design

书中代码如下://colordetector.h#if !define COLORDETECT#define COLORDETECT#include using namespace cv;class ColorDetector{public: ColorDetector() { minDist = 150; target[0] = target[1] = t

2013-08-28 18:46:55 597

原创 两张图片的叠加

在opencv函数里通过调用addWeighted函数来叠加两张图片,但这里有2个条件:1、两张图片Size相同2、两张图片channels相同如果两张不同的图片A和B,假设A的大小比B大,则这时要进行叠加的话,有如下几种思路:1、将B的图片扩大到和A一样 或者 将A的图片缩减到和B一样,在进行叠加2、可以在A的图片中找和B同样大的ROI区域,在这区域内叠加以下为代码:

2013-08-28 15:35:42 2788

原创 《学习QT之路2》笔记 QIODevice

Qt通过QIODevice提供了对 I / O设备的抽象,具有读写字节块的能力。I/O设备的类图如下:                                                                     QIODevice:所有 I/O 设备类的父类,提供了字节块读写的通用操作以及基本接口;QFlie:访问本地文件或者嵌入资源;Q

2013-08-28 09:21:50 1382

原创 遍历图片上所有像素方法总结

方法大概有4中,这里只介绍其中3种:一、基于c风格运算符[]访问二、迭代法三、核心函数LUT这里第三种方法速度最快。如果使用指针的话,迭代法也不错。以下为代码:// b4.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include using namespace std;using namespace cv;//c

2013-08-27 20:41:33 1690

原创 Mat中各成员函数

ndims– 数组的维数.rows – 2维数组中行行数cols – Number of columnsin a 2D array.size – 2维数组的尺寸Size(cols, rows) .在Size()构造函数中行数和列数在次序上刚好反转过来了。sizes–指定 n 维数组形状的整数数组。type–数组的类型。使用 CV_8UC1,… …,创建 1-

2013-08-27 16:40:06 1808

原创 快捷键

一、很多时候,需要暂时离开座位去做别的事情,如果对自己的电脑安全很重视,不妨按住windows键后,再按L键,这样电脑就直接锁屏了,这样就不用担心电脑的资料外泄啦二、要找电脑上的文件时,一般人会先找到“我的电脑”,然后点击打开,而高手总是很酷的,轻轻按下键盘上的Windows键不放然后再按E键,直接打开电脑的资源管理器,而一般人还在慢慢寻找“我的电脑”的图标呢,嗯,高手就是这样直接把一般人给秒

2013-08-27 13:42:37 525

原创 操作符的优先级

如下:

2013-08-26 22:30:07 628

原创 找出这张文档图的方块的矩形

原图如下:效果图如下:代码如下:// a7.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include using namespace std;using namespace cv;void paintRect(Mat &src, Rect &rect){ float LTopX = st

2013-08-26 22:10:25 776

原创 sharpen image

// b2.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include using namespace std;using namespace cv;void addValue(Mat &image, int &value){ /*int nl = image.rows; int nc = image.cols * image.ch

2013-08-26 20:34:54 973

原创 opencv之绘图

代码如下:// b1.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include using namespace std;using namespace cv;const int w = 300;void MyEllipse(Mat &img, double angle){ int thickness = 2; int lin

2013-08-25 13:52:13 603

原创 Qt之一个显示小任务

//mainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include #include "ui_mainwindow.h"#include #include #include class MainWindow : public QMainWindow{ Q_OBJECTpublic: MainWindow(QW

2013-08-19 20:40:42 693

原创 要学习的书

图片吧:

2013-08-18 19:02:28 549

原创 opencv之直方图caluHist函数

void calcHist( const Mat* images, int nimages, const int* channels, InputArray mask, OutputArray hist, int dims, const int* histSize, const float** ranges, bool uniform=true, bool accumulate=false );

2013-08-17 16:16:56 1292

原创 qt之坐标系、状态的保存

首先,在显示设备上,图像是由像素组成的。而由像素构成的坐标系中又分为逻辑坐标系和实际坐标系。在qt中要注意QRect::Right()与QRect::bottom()  和QRectF::right与QRectF::bottom() 的区别。前者:for historical reasons this function returns left() + width() - 1; use x

2013-08-17 15:49:48 2353

原创 Qt之一个鼠标和按键响应事件演示

在ui上添加两个控件,分别为lable和pushButton。在mainwindow.h中添加两个事件:mouseMoveEvent  和  keyPressEvent实现的功能为:按下键盘z键,显示一张图片                            按下pushbutton,显示坐标,并将光标自定义一个图标代码如下://mainwindow.h#ifnd

2013-08-16 18:42:50 4551

原创 《学习Qt之路2》笔记:Qt之各种画笔、画刷和绘制

这里直接调用了PaintEvent()事件。代码如下://paintedwidget.h#ifndef PAINTEDWIDGET_H#define PAINTEDWIDGET_H#include #include "ui_paintedwidget.h"#include class PaintedWidget : public QWidget{ Q_OBJECTp

2013-08-16 18:00:36 1356

原创 qt之文本编辑器

参照网上一文章点击打开链接,对应写了下这个程序;具体过程如下:首先还是界面的设计:这分别表示界面布置,信号/槽,动作。下面为代码://mainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include #include "ui_mainwindow.h"#include #include #in

2013-08-15 23:03:14 1383

原创 qt之用户登入窗口

先建立一个qt app工程项目,此主窗口类继承QWidgets,在此项目下,添加一个对话框类QDialog,分别在两个类的ui下,完成一些控件的设计。具体为:这是界面设计,然后是代码:#ifndef LOGINDLG_H#define LOGINDLG_H//logindlg.h#include #include "ui_logindlg.h"#inclu

2013-08-14 21:52:12 967

原创 《学习Qt之路2》笔记:Qt之事件的选择

Qt有很多事件,比如,键盘事件,大小改变的事件,鼠标事件,位置移动的事件等等。怎么选择,一般有两种方法:一、所有事件对应一个事件处理函数,在这个事件处理函数中用很大一个分支语句进行选择,如win32 API的WndProc()函数。LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam,LPARAM lParam)

2013-08-14 18:55:11 923

原创 qt之一个登陆dialog界面

在Qt design下,先设计下界面分别把伙伴关系、信号/槽关系、响应函数设计出来:           接下来编写代码://dialog.h#ifndef DIALOG_H#define DIALOG_H#include #include "ui_dialog.h"#include class Dialog : public QMainWindow{ Q_

2013-08-12 23:29:40 2149

转载 c++中内存堆与栈的区别

在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。自由

2013-08-12 15:25:23 627

原创 《我的都一本c++书》学习笔记:PPL之多线程

一、PPL是微软Visual C++ 2010中提供的一个简化多线程应用程序开发的编程模型。PPL建立在并发运行时的调度和资源管理组件之上。它在代码与底层线程机制之间插入了一层抽象层,提供支持并发的泛化、类型安全的算法和并行容器。PPL支持如下特性:1、并行算法:并行作用于一组数据的泛化算法2、并行任务:一个可并行执行几个工作单位的机制3、并行容器和对象:可安全的并发存取其元素的泛

2013-08-11 22:33:39 1540

原创 《我的都一本c++书》学习笔记:STL之shared_ptr(下)

在有些情况下,使用shared_ptr管理某些特别的类型时,这些特别的类型对象的释放不是简单地使用delete关键字释放就可以完成的,需要对shared_ptr进行自定义以完成特殊的清理工作。shared_ptr所管理的资源的清理工作都是由删除器(deleter)来完成的。shared_ptr提供了一些特殊的构造函数,这些构造函数可以指定shared_ptr删除器,从而对shared_ptr的

2013-08-11 17:42:37 867

原创 《我的第一本c++书》学习笔记:STL之shared_ptr(上)

其原理:通过对所管理的内存资源进行引用计数来达到对这个资源的管理;当新增一个shared_ptr对该资源进行管理时,或者说新增一个指向此资源的shared_ptr时,就将该资源的引用计数加1,反之,减少一个则减1。如果该资源的引用计数为0,则说明没有任何指针对其进行管理,就自动调用delete释放其所占用的内存资源。当然并不是所有情况都要用到智能指针,一般在这几种情况下,优先考虑:1、

2013-08-11 15:50:36 746

原创 《我的第一本c++书》学习笔记:c++之右值引用

首先,在c++语言中,有一些数值,他们只能放在等号右边,只能用于对左值赋值,这样的数值称之为右值;右值通常是一些数值变量、临时变量和无名变量等。而对于右值引用,在c++语言中,通过运算符“&&”来声明一个右值引用,对于之前的左值引用(即我们常说的引用),通过运算符“&”来声明引用。这相关知识又与拷贝构造函数有关。// 1.cpp : 定义控制台应用程序的入口点。//#incl

2013-08-08 20:11:25 961

原创 《我的第一本c++书》学习笔记:STL之Lambda表达式

前面介绍了函数对象,其优点在于解决函数指针无法保存状态数据的问题。但如果在程序中大量使用函数对象,则会使代码非常累赘而冗长。所以为了解决这问题,STL提供了Lambda表达式。Lambda表达式可以方便地使用应用于STL中,对算法进行自定义,同时在可以访问Lambda表达式之外的数据,解决函数执行过程中状态数据的保存问题。代码如下:// 3.cpp : 定义控制台应用程序的入口

2013-08-07 22:03:51 854

原创 《我的第一本c++书》学习笔记:STL中函数对象

函数只是表达一个运算过程,像沙漏,流过后不留下任何痕迹,如果遇到用一个函数统计容器所有Student对象的身高,就必须累加上次累加的结果。这时就必须用到函数对象。函数对象:就是定义了函数调用操作符,即operator()的普通类的对象。例如,可以定义一个函数对象类来实现比较两个数的大小代码如下:// 3.cpp : 定义控制台应用程序的入口点。//#include "stda

2013-08-07 21:23:38 662

原创 《我的第一本c++书》学习笔记:STL之函数的相关内容(二)

函数指针应用在STL算法中:// 3.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #include using namespace std;class Student{public: Student() { m_strName = ""; m_nHeight =

2013-08-07 17:33:16 543

原创 《我的第一本c++书》学习笔记:STL之函数的相关内容(一)

一、函数指针的声明与赋值首先,知道一个函数的函数名表示这个函数的入口地址。如果某个函数指针指向这个函数,则这个入口地址就是函数指针所指向的地址。//声明一个函数void PrintPass( int nScore );//定义函数指针void (*pPrintFunc)( int nScore );定义函数指针时也可缩写为:void (*pPrintFunc)( int );

2013-08-07 11:11:32 628

原创 《我的第一本c++书》学习笔记:STL的一个简单例子

代码如下:// k.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #include #include using namespace std;class Student{public: Student() { m_strName = ""; m_nHeight =

2013-08-06 22:44:44 691

原创 《我的第一本c++书》学习笔记:STL中的一些通用算法(三)

transform():前面介绍的copy能移动数据,但在移动中,不能对其进行操作,所以STL提供了transform()来实现这项功能。其重载了2个函数:第一个有4个参数:前两个表示输入容器的范围,第三个表示输出的目标容器的起始位置,最后一个表示移动过程中所做的动作。第二个有5个参数:其他都一样,只是在在第三个参数为第二个输入容器的起始位置。代码如下:// k.c

2013-08-06 19:00:50 577

原创 《我的第一本c++书》学习笔记:STL中一些通用算法(二)

copy():复制容器元素merge():合并容器元素以下为copy()代码:// k.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #include using namespace std;int _tmain(int argc, _TCHAR* argv[]

2013-08-06 18:26:31 722

原创 《我的第一本c++书》学习笔记:STL中的一些通用算法(一)

在用这些算法时,要在头文件中导入:#include for_each():遍历容器中的数据元素find():查找特定的数据,或者说是唯一性的数据find_if:查找特定范围的数据,这些数据在一个范围内代码如下:// k.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #in

2013-08-06 17:17:56 590

原创 这里出现了没有合适的默认构造函数可用

// k.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #include #includeusing namespace std;class Emplyee { public: Emplyee(string strName, int nYear) { m_strName

2013-08-02 17:36:11 2308 1

原创 《我的第一本c++书》学习笔记:STL之vector容器的常用操作函数

v.empty() 判断容器v是否为空,如果空,返回true,否则false v.size() 返回容器v中元素的个数 v.push_back(t) 在容器v的末尾增加一个值为t的元素 v.pop_back() 返回容器v的最后一个元素 v.insert(pos)

2013-08-02 13:53:52 679

原创 《我的第一本c++书》学习笔记:STL之tuple

//将表示人的数据打包struct Human{ string strName; unsigned int nAge; double fWeight;};vector vecHuman;一个vector容器保存多组数据的问题,但是也需要在代码中定义多个结构体,如果结构体过多,就会使得代码显得繁杂,STL中的tuple就解决这问题:跟结构体可以打包多个数据类似,tuple也

2013-08-02 13:43:26 1041

原创 《我的第一本c++书》学习笔记:STL之迭代器指针的使用注意事项

如下情况:循环遍历删除容器中的元素for (auto it=vecSalary.begin(); it != vecSalary.end(); ++it) { if(*it < 2) { vecSalary.erase(it); } }看似正确,但仔细分析下,在删除某个元素时,该元素的后一位会自动向前移动一位,以保持vector的连续性,这时迭代器指向的是被

2013-08-01 19:43:28 708

原创 《我的第一本c++书》学习笔记:STL之函数模板和类模板

函数模板的声明语法格式如下:template 返回值类型 函数名(形参表){ //函数体}以max()为例子template T mymax( const T a, const T b){ return a > b ? a : b;}具体代码如下:// k.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include

2013-08-01 15:39:23 571

tinyXml2源码

tinyXml2源码,方便以后下载,mark

2014-09-21

HF之HTML&css

head-first-HTML与css、XHTML第一到十四章习题

2014-08-06

Ftp客户端2源代码

根据SDI选择,浮动控件,ftp客户端,vs2012

2014-05-12

FTP客户端(load)

在win7下建立FTP服务器,创建FTP客户端,进行连接

2014-05-08

TCP服务器与客户端程序

TCP服务器与客户端训练,开发环境vs2012,mfc

2014-04-15

加法计算器

mfc c++ vs2012代码,属性对话框

2013-12-08

Windows平台下安装与配置mySQL

Windows平台下安装与配置mySQL

2013-12-05

文本编辑器不完全

vs2012下qt将代码从新输入,了解各种控件和design

2013-08-15

空空如也

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

TA关注的人

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