- 博客(97)
- 资源 (36)
- 收藏
- 关注
原创 利用OpenCV做个熊猫表情包 二
回想起来觉得有点太弱了,意犹未尽,每次使用需要自己去手动截取人脸,清除黑边什么的才能使用demo去合成表情,于是有空的时候就改进了一下,让它利用opencv,做简单的人脸识别,从而自己去截取人脸,同时去做黑边清理工作,自动化程度更高。原理呢就是在处理原始图片的流程中加入了面部识别,将面部单独切出来,同时对面部图片做黑边清晰处理,然后再进行表情的合成工作,下面介绍一下具体过程。人脸识别以及将加工后的人脸存成临时文件。灰度化图片后提取面部,并清理黑边。利用opencv进行面部识别。首先是识别到用户输入的原图。
2023-11-16 17:32:54 1122 1
原创 C++ QT qml 学习之 做个登录界面
最近在学习QT,也初探到qml 做ui 的灵活性与强大,于是手痒痒,做个demo 记录下学习成果主要内容是如何自己编写一个按钮以及qml多窗口。参考WX桌面版,做一个登录界面,这里面按钮是写的一个组合控件,有 按下,释放,以及正常 三种状态。
2023-09-13 12:19:42 1036
原创 C++(QT)画图行车
通过鼠标在窗口上点击形成多个点的连线,绘制一辆汽车沿着绘制的连线轨迹前进。要求连线点数大于20.可以通过清除按钮清除已经绘制的连线,并可以重新绘制一条轨迹连线。当车辆行驶到轨迹终点时,自动停止。(汽车实在可用方块代替)
2023-09-04 16:47:44 1842 1
原创 浏览器时不时自动弹出“领英企业服务”这个网页怎么办?
最近好像是点过领英推送过来邮件里面的链接,导致Microsoft edge浏览器总是自动弹出“领英企业服务”这个网页,真的恶心。遇到这种情况该怎么办?2.打开开始->设置->应用,找个这个app进行卸载。管理员权限启动powershell。
2023-08-17 10:32:30 1147
原创 利用OpenCV做个熊猫表情包吧
由于机器上装的是vs2013,只能安装比较低的版本,opencv3.1,安装后写代码的时候才发现 这个版本不支持人脸识别。有的时候很想把一些有意思的图中的人脸做成熊猫表情,但是由于不太会ps,只能无奈放弃,so sad...思路就是,工具给两个参数,一个是人脸图的路径,一个是熊猫背景的路径,运行即可生成表情~~正好最近想了解下opencv的使用,那就先试试做个简单的熊猫表情生成器把~~由于没有去识别脸,所以脸的图如果周边有深色效果就不会太好,比如下图的左下角。算了,毕竟是学习嘛,能生成个粗糙的对付玩把~
2023-06-16 15:58:26 737 1
原创 设计模式之桥接模式
此时 我们用7个类解决了 一开始需要9个类来解决的问题,更重要的时如果我们再增加多一个平台的支持,就只要增加2个类,对比使用设计模式之前的代码需要增加4个类来说,无论是开发效率以及未来的可维护性来说,都是提高了很多~这时候我们会发现,如果我们再增加多一个平台的支持,就要增加4个类,而且此时不同平台的精简版、标准版,完美版,代码看起来非常的类似,重复。在软件开发设计中,由于类封装的不合理,责任划分的不明确,使继承得到的具体子类数量急剧膨胀,也同时充斥着大量的重复代码。
2023-06-09 17:40:46 1008
原创 Detours框架实现原理探究
Hook API在自动化测试、性能分析以及安全攻防领域有着广泛的应用。Detours 作为微软研发并开源的API HOOK框架,在微软内部以及业界有着广泛的使用
2022-09-08 19:24:25 1132
翻译 Run multiple services in a container(在容器中启动多个服务)
容器的主要运行进程是 Dockerfile 末尾的 ENTRYPOINT 和/或 CMD。通常建议您通过每个容器使用一项服务来分隔关注区域。该服务可能会fork成多个进程(例如,Apache Web 服务器启动多个工作进程)。拥有多个进程是可以的,但要从 Docker 中获得最大收益,请避免一个容器负责整个应用程序的多个方面。您可以使用用户定义的网络和共享卷连接多个容器。容器的主进程负责管理它启动的所有进程。在某些情况下,主进程没有经过精心设计,并且在容器退出时无法优雅地处理“收割”(停止)子进程。如.
2022-04-25 19:39:56 1259 1
原创 Windows 父进程欺骗技术
Windows 父进程欺骗技术,其实就是创建一个进程,指定其他进程为这个新创建进程的父进程。通过CreateProcessA进行欺骗对父进程进行欺骗有许多方法,本文中着重介绍通过调用CreateProcessA函数进行实现,该方法最简单也最常用。CreateProcessA函数允许用户创建新进程,默认情况下,会通过其继承的父进程完成创建。该函数有一个名为“lpStartupInfo”的参数,该参数允许使用者自定义要使用的父进程。该功能最初用于Windows Vista中设置UAC。lpStar
2020-09-29 11:22:42 1842
原创 Windows 查看句柄占用情况
Windows 查看句柄占用情况的工具有哪些呢?很多时候我们定位问题都涉及到文件本占用的情况,然而我们又无法确定到底是哪个进程占用了这个文件。下面我们来推荐查看句柄占用的两种方法:1.系统工具 resmon.exe支持搜索,比如查看 test.txt这个文件被谁打开了2.Process Explorer是微软在维护的一款工具,非常好用,下载地址:下载地址点击菜单栏上的Find或者直接快捷键 Ctrl + F,可以进行搜索...
2020-08-14 10:30:18 3997 3
翻译 how do I access the EC Embedded Controller firmware level with wmi win32?
Imports SystemImports System.ManagementImports System.Windows.FormsNamespace WMISample Public Class MyWMIQuery Public Overloads Shared Function Main() As Integer Try ...
2018-11-08 10:29:45 516
原创 从Hook虚函数到HOOK COM API
// HookVtable.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <iostream>#include <memory.h>#include <windows.h>using namespace std;...
2018-10-10 16:46:54 1071
翻译 32位禁用本进程的SetUnhandledExceptionFilter API
// If this doesn't make sense, skip the code and come back!void lockUnhandledExceptionFilter() { HMODULE kernel32 = LoadLibraryA("kernel32.dll"); Assert(kernel32); if (FARPROC gpaSetUn...
2018-08-27 20:17:25 286
转载 VC++ Debug跟Release下编译器默认初始化变量的区别
debug跟release在初始化变量时所做的操作是不同的,debug是将每个字节位都赋成0xcc,而release的赋值近似于随机。debug版初始化成0xcc是因为0xcc在x86下是一条int 3单步中断指令,这样程序如果跑飞了遇到0xcc就会停下来,这和单片机编程时一般将没用的代码空间填入jmp 0000语句是一样的。...
2018-08-07 16:37:11 656
原创 一些常见算法题目
题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。class Solution{public: void push(int node) { stack1.push(node); } int pop() { int ielement; if (stack2.empty()) { while (!stack...
2018-07-23 11:27:30 1135
原创 大数乘法
大数乘法很多时候会用到 大数字 相乘。数字太大了之后超出计算机单一类型的最大存储长度会比较麻烦所以考虑用字符串来存储,这样对长度就没有了限制本文提供一种简单的处理方式。。甚至称不上一种算法,其实就是分解了一下我们平时的运算过程思路就是先双循环去乘,再用二维数组去保存中间结果。最后将中间结果叠加就可以#include "stdafx.h"#include &l...
2018-07-18 17:39:24 190
原创 vc++ 开发的程序不定时崩溃怎么定位?minidump 来帮你
vc++ 开发的程序不定时崩溃怎么定位?minidump 来帮你 在程序开始的地方设置结构化异常处理函数//Add UnhandledExceptionFilter; SetUnhandledExceptionFilter(CrashUnhandledExceptionFilter);在异常处理函数中自己写minidumpLONG WINAPI CrashUnhandle...
2018-07-13 10:54:57 876
原创 一种x64进程使用x86 DLL的方法
一种x64进程使用32位 DLL的方法有的时候要用第三方的DLL,但是仅有32位版本,自己开发的程序又必须是是64位的,这下头就疼了。。。。其实反之也是一样的头疼,这时候有什么办法呢?一个典型的思路就是用32位进程加载DLL,然后64位进程跟32位进程通讯。其实微软已经有了COM技术来帮我们解决这个问题:1.创建一个进程外COM服务器。2.使用COM服务器的相关接口去包装32位DLL的接口。3.6...
2018-06-25 17:31:51 10778 1
原创 设计模式之装饰模式
装饰模式:动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。有时我们希望给某个对象而不是整个类添加一些功能,这样便可以轻而易举的组合出功能各异的对象,而不是从基类到子类专门有一条线来生成这样一个特定功能的对象。同时可以精简基类的功能,避免在基类中加入更多的只有在特定的情况下才使用到的数据跟方法。#include "stdafx.h"#include <mem...
2018-06-20 17:04:58 151
原创 inno setup 安装界面进度条控制
用inno setup制作安装包会发现一个问题。默认安装时候的进度条只是文件提取的进度。当文件提取完成了进度条就已经100%这时候如果你[Run]里面运行的东西比较多,就会显得安装进度100%之后一直卡在那里,卡了半天才弹出安装完成界面。那如何解决这个问题呢?经过一番搜索,发现这个并没有什么好的控制方法,只有一些Workaround。思路就是在提取文件一开始,修改进度条刻度的最大值,比如把最大值扩...
2018-06-05 15:46:12 4308 6
原创 Core Audio APIs 给喇叭、麦克风静音
有的时候我们需要检查系统默认喇叭,麦克风的静音状态以及设置静音该怎么做呢?请参考以下代码#include <Mmdeviceapi.h>#include <Endpointvolume.h>#include <Audioclient.h>#include <Audiopolicy.h>const CLSID CLSID_MMDeviceEn...
2018-05-21 18:44:55 1390
原创 使用代码禁用设备管理器里面的鼠标设备
使用代码禁用设备管理器里面的鼠标设备禁用一个设备的方法有很多,但是能够跟设备管理器里面状态同步的方法并不多。本文是使用SetupDi 系列API来实现的,有点老生常谈了~整体套路就是:使用SetupDiGetClassDevs 返回一类设备信息集使用SetupDiEnumDeviceInfo便利设备信息集使用SetupDiGetDeviceRegistryProperty获取设备信息,从而判断是不...
2018-02-27 18:36:16 3587 2
原创 关于抢火车票的那些事儿(三)
关于抢火车票的那些事儿(三)上一节 中我们顺利登陆了12306,但是你以为这样就顺利登陆了?那么你就错了。。登陆之后你还需要进行两步的验证,不然在进行其他操作的时候就容易被要求重新登陆。上一节我们收到了数据{'result_message': '登录成功', 'result_code': 0, 'uamtk': 'g-lT6rQ5XVZsZUTOKyohI46jpJR38fma2_IBxdAfyX...
2018-02-24 11:24:11 423
原创 关于抢火车票的那些事儿(二)
关于抢火车票的那些事儿(二)在 上一节 里面我们已经准备好了Cookie,这一节该准备正式登陆12306了~有一点要注意User-Agent这个内容的设置需要跟之前获取Cookie的浏览器控件所使用的一致,不然容易被服务器发现~我用的是 'User-Agent' : 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.2; WOW64; Trident...
2018-01-25 10:34:22 703
原创 关于抢火车票的那些事儿(一)
关于抢火车票的那些事儿(一)又到了年底了,没到这个时候外出工作的人儿又开始犯愁了火车票的事儿~票不好买,于是黄牛呀,各种抢票软件走进了大家的事业。抢票软件到底是怎么做的呢?正好最近工作不忙,我也比较感兴趣,那就来探究一下。据说用python 比较好,但是我没学过python怎么办?本着学习的目的我在Github上搜索12306,找了一个项目作为base code.这个项目的代码总体说来还是比较规整
2018-01-19 15:13:42 5381 5
转载 C++和双重检查锁定模式(DCLP)的风险
原文链接多线程其实就是指两个任务一前一后或者同时发生。1 简介当你在网上搜索设计模式的相关资料时,你一定会找到最常被提及的一个模式:单例模式(Singleton)。然而,当你尝试在项目中使用单例模式时,一定会遇到一个很重要的限制:若使用传统的实现方法(我们会在下文解释如何实现),单例模式是非线程安全的。程序员们为了解决这一问题付出了很多努力,其中最流行的一种解决方法
2018-01-09 14:34:30 1264 1
转载 Porting a Driver from UMDF 1 to UMDF 2
This topic describes how to port a User-Mode Driver Framework (UMDF) 1 driver to UMDF 2. You can start with a UMDF 1 driver that uses Sources/Dirs files (not a Visual Studio project), or you can conve
2017-11-28 17:19:43 408
原创 Visual Studio 在Post build Event 调用 signtool
Visual Studio 在Post build Event 调用 signtool post-build event failed with code -1
2017-11-22 18:24:36 490
原创 一个可以监控U盘接入、自动拷贝文件到U盘、自动移除U盘的小程序
一个可以监控U盘接入、自动拷贝文件到U盘、自动移除U盘的小程序1,支持自动拖拽文件,并获取文件路径。支持文件拖拽:DragAcceptFiles(hWnd, TRUE);调用该API后,向窗口拖拽文件就会收到 WM_DROPFILES消息。在响应该消息的时候,可以使用DragQueryFile来获取文件数量以及文件的具体路径。用法如下
2017-07-10 10:07:15 6376 4
原创 Create Shortcut for windows 10 Universal Apps
Power Shell脚本能够比较方便的创建快捷方式$TargetFile = "C:\Windows\explorer.exe"$ShortcutFile = "$env:USERPROFILE\Desktop\Xbox.lnk"$WScriptShell = New-Object -ComObject WScript.Shell$Shortcut = $WScriptShe
2017-06-23 15:05:44 589
原创 vc 阻止电脑休眠
vc 阻止电脑休眠主要是使用API SetThreadExecutionState详情参考调用过这个API的线程不退出的话,系统就一直不会进入睡眠状态。Demo,系统设置一分钟空闲就进入休眠状态,让线程运行2分钟DWORD WINAPI ThreadProc(_In_ LPVOID lpParameter){ if (SetThreadExecu
2017-05-25 16:58:45 5366
原创 vs2008 + WinDDK(7600.16385.1)编译错误的问题
之前装了vs2005 配置了 WinDDK(7600.16385.1),能够正常使用现在因为项目需要安装了vs2008结果。。。New个项目都错误一大堆:C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(94) : error C2144: syntax error : 'int' shoul
2017-05-15 15:54:15 644
原创 VC++利用微软mstscax.dll控件集成远程桌面
利用微软mstscax.dll控件集成远程桌面1.新建基于MFC的对话框程序,在对话框资源上右键,选择【Insert ActiveX Control...】菜单,然后在弹出的界面中选择“Microsoft RDP Client Contorl”。2.在新添加的控件上点击右键选择【Add Variable...】,为该控件绑定一个变量,本例子中为m_Rem
2016-10-25 15:44:59 9629 3
转载 如何在bat中请求管理员权限
REM --> Check for permissions>nul 2>&1 "%SYSTEMROOT%\system32\icacls.exe" "%SYSTEMROOT%\system32\config\system"REM --> If error flag set, we do not have admin.if '%errorlevel%' NEQ '0'
2016-07-14 18:38:31 5919
原创 how to Register for Notification in ACPI | 如何注册一个ACPI 通知
A kernel-mode driver can handle events from a device by registering for notifications with the ACPI driver.This is done by registering a callback routine with the ACPI driver.This callback rou
2016-07-13 19:23:52 2101 8
Windows核心编程第二章、Windows核心编程第二章pdf
2010-02-22
Windows核心编程第3章、Windows核心编程第3章pdf
2010-02-21
Windows核心编程第2章、Windows核心编程第2章pdf
2010-02-21
学习Hook经典小程序
2010-02-06
透明对话框VC++,UI技术
2009-12-19
VC实现形状不规则的对话框UI技术
2009-12-17
VC仓库管理系统SQL2000作为数据库ADO实现对数据库的操作
2009-12-06
VC++界面美化代码,这个不是原创,不过很好,值得参考
2009-12-06
VC界面新尝试,还不错哦,交流一下VC界面新尝试,还不错哦,交流一下
2009-12-05
VC界面222UI设计VC参考程序VC界面以及基本控件的使用
2009-12-01
VC界面UI适合初学者,和大家交流一下
2009-12-01
how to Register for Notification in ACPI - 如何注册一个ACPI 通知
2024-04-09
C++ 二分查找算法的三种写法(标准二分,相同值最左,相同值最右查找)
2023-08-31
C++ QT mysql 数据库操作 demo QT快速入门
2023-08-30
vc6,GDI,双缓冲示例,vc6,GDI,双缓冲示例
2011-08-18
设计模式精解 设计模式精解
2011-06-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人