自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

m_buddy的博客

I'll take the blame and send you to death. It's worth sacrificing for all beings.

  • 博客(35)
  • 资源 (16)
  • 收藏
  • 关注

原创 Leetcode——24. Swap Nodes in Pairs

1. 概述1.1 题目Given a linked list, swap every two adjacent nodes and return its head.For example,Given 1->2->3->4, you should return the list as 2->1->4->3.Your algorithm should use onl

2017-06-20 22:43:28 371

原创 Leetcode——22. Generate Parentheses

1. 概述1.1 题目Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.For example, given n = 3, a solution set is:[ "((()))", "(()())",

2017-06-20 17:44:13 287

原创 Leetcode——26. Remove Duplicates from Sorted Array

1. 概述1.1 题目Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length.Do not allocate extra space for another array, you must do

2017-06-20 15:41:59 274

原创 Leetcode——21. Merge Two Sorted Lists

1. 概述1.1 题目Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.1.2 解题思路在这道题中需要将两个排列好的链表组合起来,由于链表中的元素都

2017-06-20 11:30:57 403

原创 Leetcode——20. Valid Parentheses

1. 概述1.1 题目Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.The brackets must close in the correct order, "()" and "(

2017-06-20 10:55:58 292

原创 Leetcode——19. Remove Nth Node From End of List

1. 概述1.1 题目Given a linked list, remove the nth node from the end of list and return its head.For example, Given linked list: 1->2->3->4->5, and n = 2. After removing the second nod

2017-06-19 22:03:32 270

原创 Leetcode——17. Letter Combinations of a Phone Number

1. 概述1.1 题目Given a digit string, return all possible letter combinations that the number could represent.A mapping of digit to letters (just like on the telephone buttons) is given below.

2017-06-19 21:14:26 343

原创 Windows线程同步——信号量对象

1. 概述信号量内核对象用来对资源计数。与其他所有内核对象相同,它们也包含一个使用计数,但它们还包含另外两个32位值:一个最大资源和一个当前资源计数。最大资源计数表示信号量可以控制的最大资源,当前资源技术表示当前可用资源。信号量的规则如下:(1)如果当前资源计数大于0,那么信号量处于触发状态(2)如果当前资源计数等于0,那么信号量属于未触发状态(3)系统绝对不会让当前资源计数变

2017-06-18 16:07:50 978

原创 Windows线程同步——互斥量对象

1. 概述当两个或更多线程需要同时访问一个共享资源时,为了保证程序的正常运行,需要保证同一个资源在同一时刻只能有一个线程去访问它。Mutex 是同步基元,它只向一个线程授予对共享资源的独占访问权。如果一个线程获取了互斥体,则要获取该互斥体的第二个线程将被挂起,直到第一个线程释放该互斥体。互斥量与关键段(线程同步方式)的行为完全相同,当互斥量是内核对象,而关键段是用户模式下的的同步对象。互斥

2017-06-17 22:07:02 1130

原创 Windows线程同步——临界区对象

1. 概述如果有多个线程试图同时访问临界区,那么在有一个线程进入临界区后,其他试图访问的线程将被挂起,直到进入临界区的线程离开。临界区在被释放后,其他线程可以继续抢占,并以此达到对临界区的互斥访问。(临界区中一般都是一个简短的代码段)在WINDOWS中,临界区是一种应用层的同步对象,非内核对象。对于这句话的解释是这样的:临界区(Critical Section)是Win32中提供的一种轻量级的

2017-06-17 16:37:12 1770

原创 Leetcode——16. 3Sum Closest

1. 概述1.1 题目Given an array S of n integers, find three integers in S such that the sum is closest to a given number, target. Return the sum of the three integers. You may assume that each input

2017-06-16 11:27:03 463

原创 Leetcode——18.4Sum

1. 概述1.1 题目Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + c + d = target? Find all unique quadruplets in the array which gives the sum of target.

2017-06-16 11:16:57 275

原创 Leetcode——15. 3Sum

1. 概述1.1 题目Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero.Note: The solution s

2017-06-16 11:11:17 327

原创 Windows线程管理和调度机制概述

1. 线程管理线程,有时被称为轻量级进程,是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针,寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。既然线程作为程序执行流的最小单元,那么在Windows中,对于线程的管理和调度线程是这

2017-06-16 00:15:00 10324

原创 C++STL 仿函数

1. 概述仿函数(functors)是早期的命名,C++标准规格定案后采用的新名称是函数对象(function objects)(也就是一种具有函数特质的对象)。仿函数的作用:在C++的STL提供的各种算法,例如sort()。往往有两个版本,其中一个是最长用的某种运算的版本(operator仿函数产生的原因:由于函数指针毕竟不能满足STL对抽象对象的需求,也不能满足软件积木

2017-06-11 18:05:53 2300

原创 C++模板全特化、偏特化

1. C++模板大家都对C++的模板编程应该都能很熟练使用了,下面就是一段很简单不过的例子了//模板函数template void func(T num1, N num2){ cout << "num1:" << num1 << ", num2:" << num2 <<endl;}//模板类template class Test_Class{ static b

2017-06-10 01:22:18 14713 4

原创 C++指针函数和函数指针

1. 前言有些时候当谈论到指针函数和函数指针的时候,有些朋友就可能会范懵了,好像名称都是差不多的样子呀,只是两个词组交换了下顺序。但是实际上他们实际代表的含义是不一样的。指针函数代表的是一个函数,只是他的返回值是一个指针;而函数指针代表的是一个指针,只不过这个指针指向了函数。2. 指针函数前面也说到了指针函数实际上、本质上是一个函数,并且返回值是某一类型的指针,它的定义是这样的返回

2017-06-10 00:21:51 402

原创 Windows进程通信——创建线程

1. 概述在Windows环境下创建线程使用的方法主要由如下几种:CreateThread:CreateThread是Windows的API函数,提供操作系统级别的创建线程的操作,且仅限于工作者线程。不调用MFC和RTL的函数时,可以用CreateThread,其它情况不要轻易使用。在使用的过程中要考虑到进程的同步与互斥的关系(防止死锁)。beginthread,beginthread

2017-06-08 11:47:54 643

原创 Windows进程通信——剪贴板

1. 概述1.1 介绍剪贴板(Clipped Board)实质是Win32 API中一组用来传输数据的函数和消息,为Windows应用程序之间进行数据共享提供了一个中介,Windows已建立的剪切(复制)-粘贴的机制为不同应用程序之间共享不同格式数据提供了一条捷径。当用户在应用程序中执行剪切或复制操作时,应用程序把选取的数据用一种或多种格式放在剪贴板上。然后任何其它应用程序都可以从剪贴板上

2017-06-07 15:36:59 6830 1

原创 Leetcode——11. Container With Most Water

1. 概述Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of line i is at (i, ai) and (i

2017-06-06 18:00:33 319

原创 Windows进程通信——WM_COPYDATA消息

1. 概述WM_COPYDATA是一种非常强大却鲜为人知的消息。当一个应用向另一个应用传送数据时,发送方只需使用调用SendMessage函数,参数是目的窗口的句柄、传递数据的起始地址、WM_COPYDATA消息。接收方只需像处理其它消息那样处理WM_COPY DATA消息,这样收发双方就实现了数据共享。WM_COPYDATA是一种非常简单的方法,它在底层实际上是通过文件映射来实现的。它的

2017-06-06 17:22:58 1913

原创 Windows进程通信——Socket通信

1. 概述Windows Sockets规范是以U.C.Berkeley大学BSD UNIX中流行的Socket接口为范例定义的一套Windows下的网络编程接口。除了Berkeley Socket原有的库函数以外,还扩展了一组针对Windows的函数,使程序员可以充分利用Windows的消息机制进行编程。现在通过Sockets实现进程通信的网络应用越来越多,这主要的原因是Sockets的

2017-06-06 14:35:32 1948

原创 Windows进程通信——内存映射

1. 概述1.1 介绍文件映射(Memory-Mapped Files)能使进程把文件内容当作进程地址区间一块内存那样来对待。因此,进程不必使用文件I/O操作,只需简单的指针操作就可读取和修改文件的内容。Win32 API允许多个进程访问同一文件映射对象,各个进程在它自己的地址空间里接收内存的指针。通过使用这些指针,不同进程就可以读或修改文件的内容,实现了对文件中数据的共享。应

2017-06-06 12:01:17 1067

原创 Windows进程通信——命名管道

1. 概述命名管道是通过网络来完成进程之间的通信的,命名管道依赖于底层网络接口,其中包括有 DNS 服务,TCP/IP 协议等等机制,但是其屏蔽了底层的网络协议细节,对于匿名管道而言,其只能实现在父进程和子进程之间进行通信,而对于命名管道而言,其不仅可以在本地机器上实现两个进程之间的通信,还可以跨越网络实现两个进程之间的通信。命名管道使用了 Windows 安全机制,因而命名管道的服务端可

2017-06-05 22:40:15 1514

原创 MFC只运行一个实例窗口

1. 概述在编写MFC程序的时候,有些时候需要程序只能运行一个实例。需要实现这样功能,首先要阻止多个实例的运行,并将运行了的实例放置到最前面。本篇文章中采用互斥量来实现。2. 实现在InitInstance()对应的App类中添加一个互斥量句柄m_hMutex。之后在InitInstance()的最前面添加如下代码//只运行一个实例 m_hMutex = CreateMutex(

2017-06-05 16:43:22 2113

原创 Windows进程通信——匿名管道

1. 概述匿名管道是在本地机器上使用,实现父进程和子进程之间的通信的进程通信机制。需要注意两点:(1)就是在本地机器上,这是因为匿名管道不支持跨网络之间的两个进程之间的通信(2)实现的是父进程和子进程之间的通信,而不是任意的两个进程,因为需要继承父进程的读写管道句柄匿名管道的作用之一是输出重定向,也就是如下面的图中所示的功能上面红色框框中文本是在DOS窗口下输出的,

2017-06-05 15:10:18 4075

原创 Windows进程管理

1. 概述这篇博客将主要讲进程的管理,主要涉及到打开进程(OpenProcess()函数)、终止进程(TerminateProcess()函数)、对当前进程进行权限修改(OpenProcessToken(), AdjustTokenPrivileges()函数)、窗口查找(FindWindow()函数)。接下来就将使用这些函数实现对进程的打开和关闭操作。2. 进程操作2.1 打开进程

2017-06-04 21:52:57 1519 1

原创 Windows创建进程

1. WinExrc()函数这个函数还存在是为了兼容一千老式的16位机而存在的,它的函数原型为:UINT WINAPI WinExec( _In_ LPCSTR lpCmdLine, _In_ UINT uCmdShow);参数解析:lpCmdLine:是命令行参数,也就是使用exe的文件路径和后面的命令行参数uCmdShow:窗口显示的风格,参数的含义可以参考

2017-06-04 17:59:55 4696

原创 Windows进程线程相关概念

1. 进程的运行状态C++中进程运行的三个状态:阻塞、运行、就绪阻塞:在某些外部事件发生前,该进程不能运行运行:进程正在使用CPU就绪:进程可执行,但是它暂时停止让其他进程运行运行和就绪状态有些类似。处于这两种状态的进程都可以运行,只是在就绪状态中,进程暂时没有CPU可用。阻塞装填就与前两种状态不同,在阻塞状态中,即使CPU空闲,进程也不能运行。2. 进程与线程的关

2017-06-04 16:07:20 1090

原创 C++11 基于范围的for循环

1.1 for循环的新用法一般情况下在C++下遍历一个容器的方法是这样的std::vector array = {1, 2, 3, 4, 5};for(auto it=array.begin(), it !=array.end(); ++it){ std::cout << *it << "\t";}对于刷洗STL的用户的话知道在中有一个函数叫for_each算法来完成上诉的功能。

2017-06-03 20:29:29 2469

原创 C++11 模板改进

1.1 模板别名使用场景:typedef std::map map_int_t;typedef std::map map_str_t;上面的形式在C++98/03中,是不能实现直接。如果要定义如下的模板别名的时候,需要这样写:template struct map_str;{ typedef std::map type;};map_str::type kk;从上面可以看出如果

2017-06-03 16:26:00 407

原创 C++11 decltype关键字

1.1 decltype语法在C++11中增加了decltype关键字(表达式:decltype(exp)),用来在编译时推导出一个表达式的类型,并且不会真正计算表达式的值。int x = 0;decltype(x) y = 1; //y->intdecltype(x + y) z = 0; //z->intconst int& i = x;decltype(i) j =

2017-06-03 16:20:18 781

原创 Leetcode——27. Remove Element

1. 概述Given an array and a value, remove all instances of that value in place and return the new length.Do not allocate extra space for another array, you must do this in place with constant

2017-06-01 15:19:26 278

原创 Leetcode——14. Longest Common Prefix

1. 概述Write a function to find the longest common prefix string amongst an array of strings.题目如上,意思就是在给定的一个字符串数组中,求取所有字符串中的最长公共前缀。2. 编码2.1 方法1第一种方法是直接拿一个字符串与其它的字符串相比较,记录本次比较重最长公共前缀,遍历完之后就得到

2017-06-01 12:00:53 459

原创 C++11 auto自动类型推导

1. auto类型推导下面是auto的使用举例:auto x =5; //正确,x是int类型auto pi = new auto(1); //正确,批是int*const auto* v = &x, u = 6; //正确,v是const int*类型,u是const intstatic auto y = 0.0; //正确,y是double类型auto int r

2017-06-01 10:12:46 8313

图像放大waifu2x算法vs opencv实现

在原来git仓库的基础上对其进行了精简,使用vs2013与opencv3进行包装得到这个demo工程。

2018-06-06

Affine SIFT Demo

这是在论文网站上找到的源码经过OpenCV包装的Demo,提供了类似OpenCV中检测接口,只是作为Demo查看检测效果使用,故功能不够完善。

2018-01-03

WM_COPYDATA消息进程通信

使用WM_COPYDATA实现进程通信的实例

2017-06-06

匿名管道通信例子

使用MFC实现的匿名管道通信的例子

2017-06-05

Windows创建进程例程

其中包含了四种创建进程的方法例子,如WinExec、CreateProcess等

2017-06-04

C#导出到Excel

导出到Excel表格功能,

2017-05-18

一维搜索Matlab代码

这是0.618方法实现的一维搜索Matlab代码,可以按照自己的目标函数进行修改

2017-05-10

AForge录制视频Demo

该Demo实现了基本的AForge录制视频等功能。

2017-03-16

AForge离线文档

在该文档中包含了基本的API的使用说明和示例。

2017-03-16

AForge.NET Framework-2.2.5-(libs only)

这是AForge官网上提供的lib库,直接添加到C#工程就可以使用。

2017-03-16

多帧Dcm图像

里面包含30张彩色的多帧Dcm图像,这里仅供用作开发测试用途

2016-11-28

Opencv调试插件

双击安装该插件,在视图的其它窗口之中打开该插件,就可以在调试中显示cv::Mat图像数据

2016-11-10

Dicom彩色&灰度测试图片

里面包含测试仅限开发测试用途的Dicom图片,灰度图片和彩色图片各一张(彩图有已经转换为BMP的效果图)

2016-11-10

Opencv调试看图插件

2016-10-27

Log4net.dll

强大的日志工具

2016-09-13

何教授去雾算法个人调试版本

这是个人对何教授的文章研读之后,根据自己的想法写的程序,难免有不妥的地方,请看官见谅。实测(cv类型)8UC3和16UC1类型的图像调试通过。

2016-07-26

空空如也

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

TA关注的人

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