自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 资源 (19)
  • 收藏
  • 关注

原创 opencv基础篇 ——(二)颜色空间转换

颜色空间是描述图像中颜色的数学模型。不同的颜色空间使用不同的方式来表示颜色,每种颜色空间都有其特定的优点和用途。RGB 是最常见的颜色空间之一,它使用红色(Red)、绿色(Green)、蓝色(Blue)三个颜色通道来描述一个颜色。在 RGB 空间中,每个像素由这三个通道的强度值组成,通常范围在 0 到 255 之间。RGB 颜色空间适用于大多数彩色显示设备,如电脑显示器、数字相机等。BGR 是 RGB 的变种,其中颜色通道的顺序颠倒为蓝色(Blue)、绿色(Green)、红色(Red)。

2024-04-18 15:24:42 327

原创 opencv基础篇 ——(一)简介

OpenCV(Open Source Computer Vision Library)是一个开源的跨平台计算机视觉库,它提供了丰富的图像处理和计算机视觉功能,涵盖了从简单的图像处理操作到复杂的计算机视觉算法的实现。

2024-04-18 15:23:28 324

原创 基于Qt的插件扩展

QPluginLoader

2024-03-26 11:18:45 324

原创 视觉平台工作流搭建

图像识别视觉平台

2024-03-26 10:56:20 303

原创 根据运行时索引序号访问tuple的值

【代码】根据运行时索引序号访问tuple的值。

2024-03-10 10:49:42 179

原创 基于curl 使用http多线程下载大文件

7、检验文件MD5是否一致。如需完整代码,可评论区留言。6、获取服务器文件MD5。四、等待所有线程完成。

2023-12-07 20:03:56 621 2

原创 Qt 如何使用VTK显示点云

点云、VTK 、PCL

2023-12-07 19:30:52 716

原创 C++ 九阴真经之异步队列

异步队列可以看作是消息队列和线程池的合体,输入端是用户自定义数据,输出端为用户自定义执行体。定义类型T定义执行体bool task(T& t){}就可以实现没每一个消息执行操作task(t)/************************************************************************************* 异步队列* 用户将数据压入队列,并自定义执行函数,对数据...

2020-06-30 21:27:39 1204

原创 C++ 九阴真经之线程池

线程池的作用: 1、避免了在处理短时间任务时创建与销毁线程的代价; 2、在大批量并发任务中,可以更合理的使用系统资源,进行削峰平谷,保证系统运行的稳定性;基于C++11标准构建线程池,具有以下优势; 1、任务无需继承接口 2、支持lambada表达式 3、支持全局函数、静态成员函数; 4、使用bind支持成员函数;class ThreadObject : public QueueObject{public: usin...

2020-06-30 21:24:50 234

原创 C++ 九阴真经之线程间通信(消息队列)

消息队列是线程间通信比较常用得方式,常用于解决经典模型生产者——消费者模型线程间得通信。本文将结束基于C++标准库实现得消息队列,可以支持任意参数类型,任务参数数量。为了方便后续线程池、异步队列得实现,这里提取了公共基类。class QueueObject : public noncopyable{public: QueueObject() :m_bStop(false), m_nCapacity(MAX_QUEUE_CAPACITY) { } virtual ~QueueO

2020-06-30 21:23:03 2526

原创 C++ 支持宏重载效果

C++宏默认是不支持重载的,但可以通过特殊方法让宏支持重载。可能你要问,支持宏重载有什么用处,那么,就以实例来尝试宏的重载。为了要实现类的动态创建,我还想构建类的继承关系图,为了简化注册,所以我需要用宏来简化注册。我需要以下宏来支持:REG_CREATE1(className)REG_CREATE2(className, baseName1)REG_CREATE3(className, baseName1, baseName2)C++支持多继承,但为了方便,我不希望每次注册的时.

2020-06-14 11:51:29 1952 1

原创 C++ 不定参宏展开

一、通过不定参宏进行日志输出#define LOGINFO(fmt,...) printf("[%s][%s]", __FUNCTION__, GETINFO(fmt, __VA_ARGS__)) 通过参数 __VA_ARGS__ 来展开不定参数, 这里借助宏可以输出日志的位置等信息。 这里不定参的输入如果为空,linux下可能无法编译通过,你需要加 ###define LOGINFO(fmt,...) printf("[%s][%s]", __FUNCTION__, GET...

2020-06-14 11:49:15 949

原创 C++ 基础类型万能转换器

你可能还在使用atoi、atof、itoa等函数进行类型转换,赶紧看过来,用一个函数,解决所有支持io流类型的转换。//基础类型转换template<typename OUT,typename IN, typename std::enable_if<!std::is_same<OUT, IN>::value, int>::type N = 0>OUT Convert(const IN& val){ std::stringstream ss; ss

2020-06-14 11:47:00 363

原创 C++ 九阴真经之命令控制模式

所谓命令控制模式,就是对应的行为进行封装,通过命令就能控制,你可以理解为linux下指令操作。 比如一个操作包括,A1、A2、.....A10这10步操作,如果某一步失败,那么就进行倒回,如果这10个操作的业务类型各不相同,并且所需要的参数也不尽相同,操作起来就比较困难,如果我能将他们全部封装成指令模式,只通过A1到A10这10个字符串就触发,那么实现起来就容易的多。 对于网络编程,命令控制就变得必不可少了,该模型可以帮你将网络层与业务层完美的管理在一起。 实...

2020-06-13 17:20:26 298

原创 C++ 九阴真经之控制反转 Ioc

控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup) 实现代码:#include <sstream>#include <string>#include <unordered_map>#include <memory...

2020-06-13 17:17:29 395

原创 C++ 九阴真经之动态创建

动态创建对很多人来说,都不陌生,在一些大型项目中是比较常见的,也是MFC的核心机制,随着C++新标准的演化,很多东西都可以很简单的就实现。实现代码:#include <vector>#include <functional>#include "noncopyable.h"#include "singleton.h"#include "anyval.h"#define PRIVATE_REG_DYNCREATE_4(class_name, baseName1,

2020-06-08 20:49:04 137

原创 C++ 九阴真经之任意值

any是一个可用于任何类型单个值的类型安全的容器,目前已收录到C++17标准库,但对于一些历史 项目,可能并没有使用最新编译器,那么可以自己简单的实现。代码实现:#include <assert.h>#include <typeinfo>#include <string>class AnyVar{public: //保存真正数据的接口类 class placeholder { public: virtual ~placeholder

2020-06-08 20:46:32 168

原创 C++ 九阴真经之线程安全单例类

C++ 九阴真经之线程安全单例类与之前的单例类似,但普通的单例类是非线程安全的,就是是你不能有些线程读,有些线程写,一般来说,要安全访问单例,就需要用户自己加载来控制对单例的访问。日常开发中经常会需要加载配置数据,我希望程序运行过程中能够定时的去更新这些配置信息,比如log级别,一般情况下开启INFO级别即可,但处理问题时,我希望打印DEBUG Log。为了方便起见,这里实现一个线程安全单例,以便以后的项目能够快速的处理这种场景。代码实现://哨兵类,负责多线程操作,自动加锁解锁//

2020-06-08 16:15:05 157

原创 C++ 九阴真经之单例模式

C++ 九阴真经之单例模式单例类在日常开发中是非常常见的,用于管理一些配置数据及资源,提供全局访问。通过单例模式,可以做到:确保一个类只有一个实例被建立 提供了一个对对象的全局访问指针 在不影响单例类的客户端的情况下允许将来有多个实例代码实现://单例template<typename T>class Singleton : public noncopyable{public: static T & get_instance() { .

2020-06-08 16:11:51 138

原创 C++ 之九阴真经系列

C++ 之九阴真经系列很久没整理文档了,趁着近期比较空闲就想着整理一下,有些代码是很久以前写的,也有些是平时开发中遇到的一些不方便,也趁机把想要实现的一些模型一并实现了,整理过程中还是获益良多,所谓温故而知新吧。 本系列文档主要为一些C++比较常用的辅助类,或一些业务实现模型,如单例类、字符串、线程、时间、线程池等一些常用的理论知识。1、单例类 2、线程安全单例类 3、任意值类 4、类动态创建 5、控制反转 IOC 6、命令控制模式 7、消息队列 8、线程池 9、异步处理任务队列

2020-06-08 16:07:46 755 1

原创 Boost库学习之旅入门篇

Boost库学习之旅入门篇学习及使用Boost库已经有一段时间了,Boost为我的日常开发中带来了极大的方便,也使得我越来越依赖于boost库了。但boost功能太多,每次使用还是得翻看以前的资料,所以为了以后可以更方便的使用,在此对常用的功能作一个总结,也希望以此与大家共勉。 boost库下载,Svn地址: http://svn.boost.org/svn/boost/t

2014-03-21 20:49:22 819

原创 VS2010使用静态编译的qt库

Qt开发界面很方便,但发布程序就不那么方便了,你的把引用到的dll一起发布才行,要是能静态编译就好了,发布的时候只有一个exe多方便。       虽然以前为了方便,直接安装的qt-windows-opensource-5.0.2-msvc2010_32-x86-offline.exe, 省去了自己编译这一步,但官方提供的库是动态编译的,是以lib + dll形式存在的,所以没法在我的程序中静

2013-06-23 10:57:05 3613 7

原创 Win7系统VS2010下搭建qt开发环境

win7下vs2010搭建qt环境总算成功了,在此分享一下。最初选择了VS2012 + qt-windows-opensource-5.0.2-msvc2012_64-x64-offline.exe + qt-vs-addin-1.2.1-opensource.exe一路安装成功,创建时报错,错误信息如下:在网上搜索的都说,qt库暂时不支持vs2012, 需自行编译,故没有进一步深

2013-05-22 22:02:04 6676 1

原创 C#操作excel文件

using System;using System.Collections.Generic;using System.Linq;using System.Text;using Excel = Microsoft.Office.Interop.Excel;using System.IO;using System.Data;namespace ConsoleApplic

2013-05-06 17:34:50 381

原创 使用lua语言实现循环链表

List = {}--[[ 创建链表]]function List.new() local t = {next = nil, prev = nil, value = 0} t.next = t t.prev = t return t;endfunction List.push_front(list, val) local t = {next = list.

2013-03-13 09:16:59 1689

原创 多继承中多态的实现

#include using namespace std;class A{private: virtual void Func1() { cout << "class A Func1" << endl; } virtual void Func2() { cout << "class A Func2" << endl; }};c

2013-01-31 20:36:15 473

原创 多态是如何实现的

#include using namespace std;class A{public: virtual void Func1() { cout << "class A Func1" << endl; } virtual void Func2() { cout << "class A Func2" << endl; }};class

2013-01-31 20:28:36 426

原创 模拟编译器对虚函数索引项的实现

#include using namespace std;class A{public: virtual void Func1() { cout << "class A Func1" << endl; } virtual void Func2() { cout << "class A Func2" << endl; }};clas

2013-01-31 20:12:46 295

原创 通过交换虚函数表指针查看虚函数的实现方式

#include using namespace std;class A{public: virtual void Func1() { cout << "class A Func1" << endl; } virtual void Func2() { cout << "class A Func2" << endl; }};cl

2013-01-31 20:03:14 349

原创 通过虚函数指针绕过虚函数的保护机制

#include using namespace std;class A{public: A() { a = 10; }private: virtual void Func1() { cout << "class A Fu

2013-01-31 12:44:07 721 5

原创 编译器对虚函数的实现

#include using namespace std;class A{public: virtual void Func1() { cout << "class A Func1" << endl; } virtual void Func2() { cout << "class A Func2" << endl; }};int

2013-01-30 20:39:30 571

原创 获取本机mac地址和Ip地址

#include #include #include #include #include #include #include #include int main(int argc, char* argv[]){ if(argc < 2) printf("usage getmac interface为网络设备,如eth0, 可以通过/sb

2013-01-30 20:16:17 888

原创 Linux网络编程epoll模型

#include #include #include #include #include #include #include #include #include #include using namespace std;#define LISTENQ 5 #define OPEN_MAX 1024#define SERV_PORT 10

2013-01-30 19:15:20 952

原创 Linux网络编程poll模型

//分发进程//listen #include #include #include #include #include #include #include #include #include #define LISTENQ 5 #define OPEN_MAX 1024#define SERV_PORT 10088#define M

2013-01-30 18:31:53 1450

原创 Linux网络编程select模型的实现

#include #include #include #include #include #include #include #include #include #define LISTENQ 5 #define OPEN_MAX 1024#define SERV_PORT 10088#define MAX_LINE 1024#define

2013-01-30 18:25:57 1666 2

原创 原始套接字实现

#include #include #include #include #ifdef WIN32#include #include #include #else#include #include #include #include #include #endif#ifdef WIN32#pragma comment(lib,"

2013-01-30 18:06:44 1673

转载 如何在windows下编译Chrome源代码

序·关于Google Chrome Google Chrome 是Google 于2008年发布的一款开源的浏览器,它采用了许多开源的组件和工具,比如它的浏览器引擎采用的是开源的浏览器引擎WebKit。如果想获取Chrome的代码,可使用SVN从Google服务器上checkout,其SVN地址是src.chromium.org/svn,这是一个总目录,包含有 Chrome、Gea

2012-07-22 18:16:05 769

原创 Windows 下Qt的编译过程

ui的使用 命令行开发qt程序

2010-11-15 21:03:00 674

转载 c# Invoke和BeginInvoke 区别

<br />转自http://www.cnblogs.com/c2303191/articles/826571.html<br />Control.Invoke 方法 (Delegate):在拥有此控件的基础窗口句柄的线程上执行指定的委托。<br />Control.BeginInvoke 方法 (Delegate) :在创建控件的基础句柄所在线程上异步执行指定委托。<br />(一)Control的Invoke和BeginInvoke<br />我们要基于以下认识:<br />(1)Control的Inv

2010-07-04 09:09:00 271

原创 System.Data.OracleClient.OracleException: ORA-00979: not a GROUP BY expression

<br />今天因为这个问题纠结了很久,其实这已不是第一次犯这样的错误了,今天特别记录下来,以防再犯。<br />总的来说,是因为oracleclient类型转换产生的错误,同样一条正确的sql语句,今天不出错误,或许明天就会出错,结合个人的错误经历,错误的来源主要来源于聚集函数,一下示范错误是如何产生的:<br />首先,给出获取数据源的函数<br />  public DataTable ORselect(string str)<br />        {<br />            DataT

2010-06-18 14:06:00 2950

设置钩子函数

设置钩子

2013-03-14

windows消息函数

windows消息函数

2013-03-14

获取系统时间

获取系统时间

2013-01-22

获取关机、休眠消息托盘程序

当用户正常关机时,可以取消用户关机,或再关机之前执行特定的任务。其中的托盘程序部分,抽取了开源项目的部分代码。

2013-01-13

VC++ 实现计算机休眠、关机、重启

Win32程序实现xp系统休眠、关机、重启功能

2013-01-08

Visual C++黑客编程揭秘与防范源码

Visual C++黑客编程揭秘与防范源码

2013-01-06

win32编程学习笔记

win32编程学习笔记

2012-07-29

马踏棋盘贪心法实现

按国际象棋中马的走法,走遍整个M*M的棋盘,并且不重复,用贪心法能迅速找到,并无误的输出。. 本源码采用递归法实现,可在1秒内循环64个格作为起点,输出所有的路径。基本语法同C,但用到了C++的算法库中的排序函数、和STL容器。为了精确计算时间也用到了win32中的API函数。 核心代码100行左右,简单、明了。

2012-07-16

vc++ 网络编程

VC++ 网络编程,包括FTP、HTTP等常用协议的编程。

2012-06-24

socket入门代码,windows和unix

socket入门代码

2011-12-30

c c++师资培训资料

unix内存分配 电信实战开发 DMS系统分析设计

2011-02-15

shell脚本专家

本书适合从中级到高级的shell程序员。

2011-02-15

windows扫雷程序(源码)

模拟windows扫雷程序实现。 采用virsual c++6.0 实现,使用MFC框架。

2011-01-29

virsual C++ 编程高手

本光盘和图书汇集了来自世界各地的顶尖Visual C++编程高手愿意无偿奉献的得意之作,共计21章206个程序,涉及的方面包括:按钮控件、编辑控件、静态控件、组合框控件、列表视控件、树视控件、工具条控件、状态条控件、其他公共控件、ActiveX控件、对话框、视窗模型、分隔器窗口、位图、剪接板、多媒体、shell、Internet、macro、扩展库和综合应用。绝大部分程序包含源代码、项目文件和可执行文件,直接为你所用。 由于篇幅所限,图书主要介绍各个程序的功能及设计思想,而其完整源程序和演示程序包含在光盘的相关目录中。同时,光盘还提供了一个浏览图书内容的树型结构浏览器,点击树型节点或者工具条的适当按钮,即可自由地浏览感兴趣的内容。 无论对于Visual C++新手还是老手,以及其他编程语言,比如VB、Delphi的程序员,都具有很好的参考价值。

2011-01-29

PL/SQL 字符串分割

字符串分割,..........................................

2011-01-28

c语言版马踏棋盘贪心法实现

按国际象棋中马的走法,走遍整个M*M的棋盘,并且不重复,用贪心法能迅速找到,并无误的输出。

2008-12-25

空空如也

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

TA关注的人

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