自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

文洲的专栏

对昨天不后悔,对今天不生气,对明天不担忧,对睡眠不轻视,对运动不排斥,爱自己,拥抱生活!

  • 博客(209)
  • 资源 (109)
  • 问答 (1)
  • 收藏
  • 关注

原创 Windows DIB文件操作详解-1.DIB的读入、保存和显示

本文以主流的DIB 格式演示了DIB的读入、保存和显示,没有考虑兼容情况且减少了错误处理,演示的代码在大部分情况下是适用的,只是为了起抛砖引玉的作用。关于DIB的详细描述当推Petzold的《Windows 程序设计》的“与设备无关的位图”一章,这一章描述非常详细,但是个别地方有些晦涩,结合本文来看可以加深理解。

2014-05-19 17:07:55 7187

原创 12.队列的应用-事件驱动编程

事件驱动编程简而言之就是应用程序维护一个或多个事件队列,完全以事件队列为主线来设计和编写整个程序。这里利用队列实现了一个完整的事件驱动编程过程,模拟了银行排队这一离散事件的发生。

2014-05-05 17:27:52 6307

原创 11.C语言泛型的支持

C++中使用模板技术来实现泛型,但是在C中是不支持模板技术的,怎么来实现泛型呢?本文演示了一种可行方法,希望对你有用。

2014-05-04 22:11:34 4874

原创 10.队列

1.理论队列是一种先进先出(FIFO)的数据结构,在线性表的基础上扩展而来,相对于线性表可任意位置插入和删除,它只允许在一端插入和删除,又叫入栈和出栈操作。

2014-04-21 22:16:46 984

原创 9.栈的应用-递归函数转非递归函数

前面说过递归函数的本质是使用栈结构,每次xaingxian

2014-04-19 11:50:53 2129

原创 8.栈的应用-四则运算算术表达式求解(后序表达式法)

1.理论在上节中看到使用“算符优先法”首先要自己去推导整个算符优先级表,然后计算机按照算符优先级表来出栈和进栈直到完成整个运算。这里推导算符优先级表是一个关键,但是这样比较繁琐,有没有更为直观的算法呢。观察如下算术表达式:1+2*3-2/3表达成二叉树形式如下

2014-04-19 10:31:44 8354

原创 7.栈的应用-四则运算算术表达式求解(算符优先法)

1.理论表达式求解在程序编译器sheji

2014-04-17 22:29:39 20880 6

原创 6.栈的应用-迷宫求解

在许多游戏程序中有自动寻路的功能,自动寻路包括

2014-04-16 20:47:10 1452

原创 5.栈的应用-数制转换和括号匹配

前面说过了栈的应用非常之广,这主要得益于它后进先出的特性,程序设计中许多difang

2014-04-16 08:34:22 2290

原创 4.栈

栈的应用可谓是非常之广,它是一种后进先出的线性表

2014-04-15 11:46:57 886

原创 3.线性表的应用-一元多项式的计算

1.理论多项式可以很容易的表示为线性表如

2014-04-14 16:31:52 3171 2

原创 2.循环链表和双向链表

1.理论在基础线性表结构上灵活扩展keyi

2014-04-14 09:31:02 1194

原创 1.线性表

当我们存储数据时,最先最自然想到的就是线性表了,它最简单,可以描述为依次排列的yi

2014-04-12 21:53:12 996

原创 CSDN英雄会-交替字符串

题目详情如果字符串str3能够由str1和str2中的字符按顺序交替形成,那么称str3为str1和str2的交替字符串。例如str1="abc",str2="def",那么"adbecf", "abcdef", "abdecf", "abcdef", "adefbc"等等都为str1和str2的交替字符串。更形式化的,str3的生成算法如下:str3=""while

2014-04-12 11:09:10 1324

原创 英雄会第四届在线编程大赛·线上初赛:带通配符的数

给定一个带通配符问号的数W,问号可以代表任意一个一位数字。再给定一个整数X,和W具有同样的长度。问有多少个整数符合W的形式并且比X大?输入格式多组数据,每组数据两行,第一行是W,第二行是X,它们长度相同。在[1..10]之间.输出格式每行一个整数表示结果。

2014-04-10 20:33:47 1171

原创 3.取色精灵V2.0-非模态对话框自建消息队列、VS2008风格对话框、使用Common Controls、悬浮透明窗口、使用SLIDER控件

取色精灵主要用于屏幕取色主要界面:取色框取色设置软件设置取色历史在这里记下一些主要和通用功能的实现1.非模态对话框自建消息队列在本程序中主界面是非模态对话框,如果在WinMain函数中直接使用CreateDialog函数创建非模态对话框然后ShowWindnow发现对话框秒退,这是因为非模态对话框是没有自己的消息队列的

2014-04-03 22:34:23 2097

原创 11.MIL中测量模块(Measurement)

上节说过灰度匹配的鲁棒性太差,在定位一些特殊的简单特征时,使用单方向的灰度跳变特征(和边缘检测类似)来定位的鲁棒性较好,速度快。你可以定位指定的点、边、条纹三种特征,定位的两个特征的间距即为长度、宽度等特征,所以这个模块叫做测量模块。1.测量流程(1).分配指定的特征Marker使用MmeasAllocMarker函数来设置指定的特征,MIL支持三种特征:点(M_POINT),边(M_

2014-03-31 16:45:42 5538 2

原创 10.MIL中灰度匹配(Pattern)

上节已经提到,图像处理中的匹配包括灰度匹配和几何匹配。灰度匹配主要原理是一对一的像素比对,算法实现是计算两个图像的相关,容易理解,实现容易,但是计算量太大且鲁棒性较差。相对于几何匹配,灰度匹配应用的越来越少,但是在一些比较友好的环境中使用灰度匹配也能得到比较好的效果。匹配流程同样,对于MIL中的中级操作,处理流程遵循如下规则:分配对象->设置对象->(预处理对象

2014-03-31 11:57:19 7934 7

原创 Windows 中GDI、设备描述表和位图

在Windows中,所有的图形和图像显示操作都是通过GDI(Graphic Device Interface)模块完成,,而GDI的显示都是由设备描述表(Context Device,简称DC)来完成的,设备描述表同显示驱动程序打交道,显示驱动程序再同显示硬件打交道,最终得到指定的显示效果。基本所有的书提到设备描述表时都告诉我们把设备表看成一个虚拟对象,所有显示操作同它打交道即可。诚然,在写程序的

2014-03-28 19:38:56 4165

原创 9.MIL中几何匹配(Model)

在MIL系列连载的前8篇都是关于图像获取和输出的主题,从这一篇开始,主要的内容就图像处理。在冈萨雷斯的《数字图像处理》的序言中将图像处理分为如下三类1.低级处理,主要是用于图像的预处理和增强操作,输入和输出都是图像,在MIL中对应Mim...模块2.中级处理,主要是对象识别、分析和测量,输入是图像,输出是从图像中提取的属性(如边缘、轮廓、位置、距离等等),在MIL中对应Mblob、Mc

2014-03-14 16:28:19 8164 4

原创 8.MIL中相机标定(Calibration)

前面讲了MIL的在线采集,这就引申出了如下的问题:1.由于镜头畸变、相机内部参数不一致、环境影响等诸多因素的影响,实际相机采集到的图片会产生扭曲、变形等等,其中最常见的就是镜头畸变,这个问题如何解决?2.不同的相机、不同的镜头针对同一现实物体采集得到的图像的大小不一样,如何确立现实物体和实际图像的对应关系(度量单位转换)?这两个问题通过相机标定来解决。

2014-03-13 19:41:56 10551 13

原创 深入windows的关机消息截获-从XP到Win7的变化

之前写了一个软件用于实验室的打卡提醒,其中一个重要的功能是在关机之前提醒当天晚上是否已经打卡。之前我是在WM_ENDSESSION中弹出一个模态对话框来提醒,在XP中基本工作正常,在Win7中大多数时候工作正常,但是有时候会出现不提醒现象。我想这中间是不是有什么玄机,Windows的关机方案从XP到Win7到底发生了什么变化,如何进行有效的截获Windows关机消息。对此,我搜寻了MSDN和网上论坛结合自己的测评给出一个完善的描述和解决方案,如果你有类似的需求,可以参考这篇文章。

2014-01-12 15:09:29 9200 4

原创 谈一谈属性页和Tab控件

最近给新带的一个小师弟布置了一个小作业:很简单就是有三个Tab页面,每个Tab页面有1个编辑框,在第一个和第二个编辑框界面各输入一个数字,在切换第三个Tab时编辑框内显示前两个Tab页的编辑框输入数字的和。本来只是为了锻炼他对控件的应用,以为很简单,可是小师弟反应不知道如何在将第1、2个Tab的值传递到第三个Tab页面,我想可能新手容易在这里产生困惑,在此记下来供有同样问题的新手学习,同时讲解了用

2014-01-07 13:27:12 7636 3

原创 为什么使用剪切板时都用GlobalAlloc分配内存

我在使用剪切板时,发现通用的都是使用GlobalAlloc来分配内存,我就想不是说在Win32中GlobalAlloc和LocalAlloc是一样的那为什么不用LocalAlloc呢,原谅我的好奇心吧,对此我研究了一番,如果你也有此疑问,可以看一看。

2014-01-02 11:04:24 11788 5

原创 深入了解Windows句柄到底是什么

总是有新入门的Windows程序员问我Windows的句柄到底是什么,我说你把它看做一种类似指针的标识就行了,但是显然这一答案不能让他们满意,然后我说去问问度娘吧,他们说不行网上的说法太多还难以理解。今天比较闲,我上网查了查,光是百度百科词条“句柄”中就有好几种说法,很多叙述还是错误的,天知道这些误人子弟的人是想干什么。这篇文章中我们来详细探讨一下Windows中的句柄到底是什么,希望可以解开广大程序员的心中疑惑。

2013-12-30 11:02:23 98929 28

原创 深入Windows窗体原理及控件重绘技巧

之前有学MFC的同学告诉我觉得Windows的控件重绘难以理解,就算重绘成功了还是有些地方不明白,我觉得可能很多人都有这样的问题,在这里我从Windows窗体的最基本原理来讲解控件的WM_DRAWITEM重绘和子类化重绘,如果你有类似的疑惑希望这篇文章可以帮你解惑。

2013-12-29 13:46:35 30205 10

原创 2.实验室打卡精灵2.0-单实例化、开机启动、托盘操作、程序启动时隐藏主窗口

老规矩,上一张图片最近对实验室打卡精灵做了一些优化,基本上达到了最初设想的功能。现在的功能包括:1.自定义早上、中午、下午、晚上的打卡时间2.软件单实例化,即如果已经运行了一次再次运行会弹出“应用程序已经在运行”的提示3.软件可选择开机自动启动4.软件开始的时候提醒打卡,如果选择了开机自启动可以实现开机时候提示打卡5.关机的时候提示打卡

2013-12-22 10:59:35 2564 3

原创 98年的VC6到08年的VS2008-从atoi的用法差别看UNICODE的使用

由于平时写的较多的是工业设备程序,所以用的XP+VC6比较多,最近写一个小程序,用上了VS2008。之前也用过很长时间的VS2008,没出什么大问题,但是今天将之前在VC6上写的一个工作正常小接口程序拿过来直接用居然不行。自认为一直很注意C++语法标准的问题,也比较清楚VC6和VS2008的差别,可是试了很长时间都没发现问题,最后解决了问题发现是UNICODE的问题。在这里记下问题,希望对遇到

2013-12-17 22:03:47 4773 2

原创 7.MIL构建一个视频播放器

前面讲解了MIL视频的保存、加载和播放,那么有不少人私信我说按照我的讲解构建的视频播放器有问题,这里综合他们的问题,我这里演示一个简单的播放器,它实现了简单的视频播放功能:打开视频、播放视频和暂停视频。如果你想实现更复杂的功能可以在此基础上扩展。在此过程中,我会指出常犯的错误。另外,需要补充说明的是,这里的MIL做的播放器,由于支持的视频编码的格式和完善程度有限,并不支持通用视频 的打开,例如...

2013-12-08 16:19:22 3505 2

原创 6.MIL采集和实时显示

前面讲到的都是离线的图像获取方法,实际中我们做机器视觉都是在线采集图像和处理,处理结果决定了计算机要给出的控制信号如电机运动等,这样就实现了实时视觉反馈运动。本文先详述了一个完整采集系统的构成(从相机到显示器),而后演示MIL三个函数MdigGrab,MdigContinous,MdigProcess代表的三种采集方式。

2013-12-02 22:21:28 14044 18

原创 5.MIL中视频加载、播放和保存

前面我们讲解了MIL图像的加载和保存,很多时候我们在做机器视觉时要求实现录像的功能,对此MIL提供了基本的支持。本文详解了MIL开发包中如何录制视频和播放视频等功能。

2013-11-24 20:09:20 4953

原创 4.MIL中图像的加载和保存

用MIL做图像处理首先得学会如何输入图像Buffer来做处理和处理完的图像Buffer如何保存。本文详述详述了MIL中加载图像的三种方式、MIL支持的图像文件格式和MIL保存图像方法。

2013-11-24 13:39:31 9326 4

原创 3.MIL图像新建和显示

一般来说我们讲到图像会关注它的分辨率,深度,格式,类型几个方面的参数,那么在MIL中新建一个图像要考虑哪些方面呢,换句话说,调用MIL函数新建图像时,要传入哪些参数呢?数字化图像对应到计算机内存来说就是离散化的数字矩阵,在MIL中保存来说是C语言数组,数组的每一个值表明当前像素点的灰度值。MIL中并没有对应的图像新建函数,在MIL中将图像归类为一种Buffer(可以理解为就是一种C语言数组),我们主要通过调用Buffer新建函数的同时指明Buffer属性来新建图像。

2013-11-23 21:05:31 10682 8

原创 3.深入PHP中的引用

虽然常说做C/C++编程的程序员转做PHP编程很快可以上手,但是对于PHP中的引用和C++的差别比较大,这种差别更多是由于C++和PHP的变量存储结构不同造成的,本文试图详解一下PHP中的引用,对C++中的引用只是作对比时提及,如果要了解C++的引用请参考《C++ Primer》一书。理解本文最好先看一下笔者PHP变量存储结构的博文和变量赋值行为的博文,本文说明PHP引用特别是对象引用和函数返回引...

2013-11-22 16:04:23 6055 5

原创 2.深入PHP赋值行为

首先声明,我并没有去读PHP的源码,只是对于PHP的有时候诡异的表现感兴趣,找了一下开发人员laruence的博客结合PHP提供的函数debug_zval_dump刺探得到了本博客所阐述的工作机理。如果你想对PHP变量赋值行为有一个了解或想对PHP赋值行为(Copy on write 和 Change on Write)加深理解的话,本文是适合你的,比较深入的去看源代码吧。首先阅读本博客请先阅...

2013-11-21 18:05:20 3874 4

原创 1.深入PHP变量存储结构

首先声明,我并没有去读PHP的源码,只是对于PHP的有时候诡异的表现感兴趣,找了一下开发人员laruence的博客结合PHP提供的函数debug_zval_dump刺探得到了本博客所阐述的工作机理。如果你想对PHP变量存储结构有一个了解或想对PHP变量加深理解的话,本文是适合你的,比较深入的去看源代码吧。为了保证博客的连贯性,首先引用laruence关于PHP变量内部存储结构的部分内容(稍作修...

2013-11-20 21:02:59 9176 1

原创 装系统那些事儿-2-操作系统安装分类和原理

上次介绍了电脑的启动流程,在此基础上介绍一下操作系统的安装分类和原理。

2013-10-25 18:20:16 5521

原创 2.MIL开发基础概念和步骤

相对于开源的Open CV来说商业化的MIL开发相对容易,只需要遵循特定的步骤即可以完成自己的开发。但是对于MIL中的一些基础概念还是要理解,不然可能在后面查看函数帮助时会混淆一些概念。

2013-10-18 21:36:00 9729 6

原创 装系统那些事儿-1-电脑的启动流程

如果对使用电脑遇到的问题做一个统计的话,我想装系统一定会是前十。笔者使用电脑这么多年,风风雨雨中自己或帮别人装了各种系统几十上百次。不管操作系统怎么更新换代,不管是DOS、Windows、Linux,不管是图形界面还是命令行界面,大家都面临一个基础性问题——装系统。所以,我决定在此将装系统的那些事儿汇总一下,不管你是安装什么系统或遇到什么问题或解决了问题但想了解原因,相信在这里大多能找到答案。都说“授人以鱼,不如授人以渔”,在开始讲诉各种系统的安装方式前,我先要讲一下电脑的启动流程

2013-09-13 19:12:22 3468

原创 VC6命令行编译配置

对于大多数在windows上写windows C/C++应用程序的人可能用的都是微软提供的VC++6.0或Visual Studio集成开发环境,但是对想为了更好地理解程序编译链接过程和习惯如linux般在命令行下工作的人来说,我们也可以配置使用命令行编译程序。事实上,基本的程序编译链接工具为一个编译器和链接器——编译器负责把C/C++代码编译成目标二进制代码(对微软编译器一般生成.obj文件

2013-08-30 10:11:12 9233 1

java并发编程实战-演示代码

博客配套文件,java并发编程实战详细演示了各种保证线程安全性和内存可见性的方法。

2018-08-22

go类型相关问题演示代码

演示了go语言类型相关的常见问题,给出详细演示代码,结合博客内容彻底明白。

2018-08-17

go语言常见坑

备课配套文件,详细演示了go语言常见的一些坑,包括slice、array详细区别等。

2018-08-16

python中函数常见坑

博客配套文件,详细演示了局部变量作用域问题和迭代器反复调用问题,并给出了对应解决办法,供参考。

2018-08-09

python父子进程

博客配套代码,讨论如下问题: 1.父进程开新的子进程完成任务,父进程关闭时,必须关闭子进程 2.父进程被强制关闭时,子进程也必须关闭 3.子进程被强制关闭时,父进程也必须关闭 4.父子进程没必然联系,关闭互不影响

2018-08-02

python中常见技巧1

其实也是常常遇到的一些问题,有些方法尽管可以解决问题甚至是常用的,但是python提供了更好的解决方法。对应的演示我会注明推荐和不推荐的用法。

2018-07-29

MFC程序员的WTL指南

MFC程序员的WTL指南,中文翻译版本,原文链接https://www.codeproject.com/Articles/3841/WTL-for-MFC-Programmers-Part-I-ATL-GUI-Classes。

2018-07-28

java客户端和go服务端联调错误演示

博客配套文件,演示了整个错误发生的过程,并给出正确的调用方法,可以供相同问题参考。

2018-06-04

WebBrowser 高级特性调整

博客配套文件,演示如何禁用WebBrowser右键菜单,如何禁用3D边缘和滚动条,以及如何处理js错误通知,js错误通知封装成类,可以满足实际生产使用需求。

2017-11-02

WebBrowser中JS和C++代码互相调用

博客配套文件,详细演示了JS和C++代码互相调用的方法,JS调用C++的类独立封装可直接修改使用。

2017-10-22

IE WebBrowser控件基本使用

博客演示代码,演示了IE WebBrowser控件的基本使用,包括静态创建、动态创建和事件响应。

2017-10-22

带透明度的HBITMAP和Bitmap的转换

博客配套文件,解决常见的Bitmap转HBITMAP背景变浅,HBITMAP转Bitmap背景变黑的问题,并演示了如何输出HBITMAP和Bitmap的每行像素,所有代码封装成了类,可以直接在生产环境中使用。

2017-10-21

GDI+加载和保存

博客配套文件,封装GDI+的加载保存,支持从文件/内存/资源中加载。

2017-10-21

GDI+使用演示代码

博客配套文件,详细演示了GDI+的使用,封装了GDI+环境初始化和反初始化。

2017-10-17

区分鼠标点击还是触摸

演示如何在鼠标响应详细中判断当前用户是通过鼠标点击还是通过触摸完成当前动作,据此可以最大程度兼容传统Windows程序,同时保证触摸体验效果。

2017-10-15

ATL常用包装类演示

ATL提供了很多复杂数据类型的包装类,使用这些包装类可以大大减小开发工作量,演示类常见CComBSTR CComVariant CComPtr的使用方法和注意事项。

2017-08-12

COM多线程访问演示

详细演示了多线程访问的列集/散集过程,可以借此学习COM多线程的策略和注意事项。

2017-08-02

简单的COM进程外组件

博客配套代码,详细演示了IDL生成组件代理存根dll,进程外组件编写和注册,及进程外组件调用方法。

2017-07-30

IDL使用演示

博客演示文件,演示常用的IDL属性,可以直接参考编写自己的IDL。

2017-07-30

COM特使类型使用演示

COM中包含特殊类型数据,他们大大方便了COM使用,解决了很多问题,但是也埋下了许多坑,这里详细介绍相关类型和他们的使用注意事项。

2017-07-28

HbaseJavaClient.java

hbase client包装类,超大数据海量数据时,hbase前缀匹配查询非常慢,提供了解决办法,能够取得较好的效果,包括setStartRow和setRowPrefixFilter两种方式。

2020-09-10

Spark 最简单WordCount

博客配套文件,详细演示了本地和集群模式如何运行Spark程序,演示了一个简单wordCount程序流程。

2019-05-15

scala和java混合编译

博客配套文件,详细演示了在maven中如何混合编译java和scala共存的代码。

2019-05-07

go thrift访问hbase

博客配套文件,详细演示了go通过thrift1和thrift2接口访问hbase的方法,并给出了批量访问的简单封装接口。

2019-04-19

MR程序Bulkload数据到hbase

博客配套文件,详细演示了如何通过MR程序的方式bulkload数据到hbase,代码可直接用于生产环境。

2019-03-12

thrift2 查询hbase

博客配套文件,详细演示了python通过thrift2接口查询hbase的方法。

2019-03-10

thrift1 查询hbase

博客配套文件,详细演示了python通过thrift1接口查询hbase的方法。

2019-03-10

happybase查询hbase

博客配套文件,详细演示了python通过happybase查询hbase的代码使用。

2019-03-10

centos6.5编译好thrift

在CentOS 6.5 g++版本4.4环境编译好的thrift-0.12.0.tar.gz可执行文件。

2019-03-10

python编写MR

博客配套文件,演示了借助hadoop streaming编写hadoop mapreduce程序。

2019-03-06

MR应用程序模板

博客配套文件,详细演示了实际工程应用中一个完善的MR应该如何编写。

2019-03-05

字符串-模式匹配(易理解版)

博客配套文件,演示了简化的KMP模式匹配过程和next数组的计算方式,对比快速掌握KMP算法精髓。

2019-01-27

栈实现四则运算

博客配套文件,利用c++ STL容器栈和队列实现四则运算,支持优先级和括号运算。

2019-01-08

最简单MR WordCount

博客配套文件,详细讲述了WordCount的map和reduce过程,给出了详细注释和解释,便于快速学习。

2018-12-28

一种资源池的实现

博客配套文件,详细演示了一种通用资源池的实现,给出了测试代码。

2018-11-29

python实现orm

博客配套文件,演示如何使用python实现一个简单的orm框架,并详细分析了开源框架peewee的结构。

2018-11-18

深入理解python元类

博客配套文件,演示了python类本质和和元类的定义方法,在此基础上演示常见元类的使用场景。

2018-11-11

深入理解python属性

博客配套文件,针对python属性实现aop,演示了property修饰器、描述符机制以及属性hook方法,并注明了实际需要注意的事项。

2018-11-10

python类特性演示

博客配套文件,详细演示python中实现OO编程的一些基础组件,包括命名元组,函数对象,操作符重写和类泛型

2018-10-21

go并发编程基础

博客配套文件,go并发编程基础,详细演示了传统同步方法和无缓冲通道、有缓冲通道同步方法。

2018-08-25

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

TA关注的人

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