自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(110)
  • 收藏
  • 关注

原创 如何使用 WinDbg 修复 C/C++ 中的内存泄漏

它是 Microsoft 提供的适用于内核和用户空间的强大调试器,也是查找内存泄漏的绝佳工具。Deleaker 有一个直观的 UI:开发人员不需要知道无限的命令列表来重复键入它们,希望找到泄漏内存的地址。它是一个带有 GUI shell 的控制台应用程序,一个强大的调试器,只要您知道正确的命令即可。此外,您无权访问源代码。有了泄漏内存的地址,我们可以使用 WinDbg 的强大功能来获取每个特定内存分配的调用堆栈。通过一些努力,即使在具有大量代码库的最复杂的本机应用程序中,也可以减少或消除内存泄漏的数量。

2024-03-05 14:34:25 1041

原创 如何检测C/C++中的内存泄漏?

WinDBG 是 Windows 应用程序的调试器,可以读取存储在调试堆中的附加信息。对于 64 位进程来说,它是 8 TB,但实际上内存受到硬件的限制,因此,它要少得多。虽然 C++ 运行时库仅捕获特定源文件中 C++ 函数造成的泄漏,但 Deleaker 在进程级别工作,存储所有分配。乍一看,一个小的忘记分配并不是一个大问题,但进行一百万次后,它很快就会成为一个严重的错误。另一个工具是 WinDBG,它是一个可以读取调试堆的多用途调试器。不幸的是,它的功能有限,而且WinDBG 的UI 并不方便。

2024-03-05 13:39:03 764 1

原创 优质文章集合

开发人员如何停止学习:专家初学者的崛起。

2023-08-04 14:33:21 224

原创 单元测试的 8 个好处

它将最小的可测试软件与代码的其余部分隔离开来,并确定它的行为是否完全符合您的预期。单元测试已经证明了它的价值,因为在使用过程中可以识别出很大比例的缺陷。它允许测试过程自动化,减少发现应用程序更复杂部分中包含的错误的难度,并增强测试覆盖率,因为对每个单元都给予了关注。当然,较早检测到的错误更容易修复,因为较晚检测到的错误通常是多次更改的结果,并且您并不真正知道哪一个导致了该错误。由于单元测试是由在集成之前测试各个代码的开发人员执行的,因此可以很早就发现问题并可以立即解决,而不会影响代码的其他部分。

2023-08-02 10:56:01 199

原创 通过C++/CLI将C++与C#进行联合编程

3.ref类的函数(方法)参数可以直接使用Native C++类类型,但是C#无法理解这些参数。1.ref类的变量(字段)不能使Native C++类类型,可以是指向Native C++类类型对象的指针。1.C#可以调用Native C++类类型,无论使用Pinvoke还是其他方法,Native类类型作为参数都很难处理。可以使用C++/CLI在C++和.Net之间联合编程,C++/CLI是一个两栖模块,它具有如下特点。C#可以调用Native C++类,也可以调用C++/CLI类,但是区别非常大。

2023-04-03 09:19:57 438 1

原创 C# ref struct和ref class的特点

比如图片,如果已知图片的原始格式,就可以通过 Span 对内存中 Image 类所提供的地址来获取这个连续的 byte[] 的指针,并通过 Span 的方法可以进行数据拆分,比如从 32 ARGB 中提取每个 ARGB 的 Span ( 依然是个指向原始数据片段的指针 )③ref struct 主要是用来减少GC,比如声明变量的时候可以用它来在不同对象中传递指向连续内存地址的数据,虽然会降低灵活性,不如List之类的工具功能强大,但在处理一些特定的数据的时候能给你更高的效率。

2023-03-31 10:46:36 492

原创 CPP和Net交互语法速览

C++设计,他会修改追加C#传递的,这里就不用传递引用直接可以传递修改。C#传递引用数组到CPP,CPP也可以扩展C#的数组。std::string和String^可以相互转换。本文通过一些demo来记录常用的参数交互,请记住。vector可以和C#的list相互转换。C#传递后被C++修改,然后打印出来。这个可以直接修改里面的内存。生成的C#的函数签名如下。

2023-03-14 09:49:25 217

原创 2D机器视觉 - 放大倍率和像素精度

放大倍率和像素精度

2023-02-17 14:11:03 267

原创 C++ 对象克隆关键点

C++对象克隆

2022-11-25 15:48:16 959

原创 Halcon image_points_to_world_plane和image_to_world_plane分析

个人分析,这个算子可以应用在倾斜拍照时,纠正图像视角后做图像识别,而测量的话,因为图像是算法模拟出的并非相机直接输出,所以之前的相机内参是无效的或者说不准确的,如果转换后要做测量定位,需要重新识别标定板得到标定板Pose,然后根据图像尺寸创建一个内参,调用image_points_to_world_plane转换坐标。以下X1和Y1是转换前的世界坐标,X2和Y2是转换后的世界坐标,发现在标定板倾斜程度很大的情况下,image_to_world_plane之后,世界坐标还准确一些...

2022-11-09 11:11:59 1244

原创 C#开发笔记:[MethodImpl(MethodImplOptions.AggressiveInlining)]内联函数的声明和意义

在C#中我们通常定义以下函数来求两个整数的最大值:复制代码代码如下:int max(int a, int b){return a > b ? a : b;}为这么一个小的操作定义一个函数的好处有:① 阅读和理解函数 max 的调用,要比读一条等价的条件表达式并解释它的含义要容易得多② 如果需要做任何修改,修改函数要比找出并修改每一处等价表达式容易得多③ 使用函数可以确保统一的行为,每个测试都保证以相同的方式实现④ 函数可以重用,不必为其他应用程序重写代码虽然..

2022-03-24 11:33:04 3124

原创 C++学习笔记二:无法解析的外部符号 “public: virtual struct QMetaObject const * __cdecl FormCloudFilter::metaObject(v

严重性 代码 说明 项目 文件 行 禁止显示状态错误 LNK2001 无法解析的外部符号 "public: virtual struct QMetaObject const * __cdecl FormCloudFilter::metaObject(void)const " (?metaObject@FormCloudFilter@@UEBAPEBUQMetaObject@@XZ) XR3DVision D:\window_workspace\X...

2022-01-19 17:01:01 3164 2

原创 PythonNet开发笔记三、C#联合Python编程,调用PaddleX,联合传递图像变量

本文章的应用场景为:C#开发中,调用PaddleX训练的语义分割模型,随后C#程序中导入PaddleX 包,并将图像从C#传递给python模型,获取模型推理结果,并将结果图像转换为C#,可在软件界面上显示。首先,C#中如何导入Python库及模型呢?我们可以使用如下代码,导入PaddleX及模型句柄,变量需声明为全局,以供其他地方调用。/// <summary> /// Init PaddleX handle /// </summary&gt

2022-01-07 11:50:40 1190 2

原创 PythonNet开发笔记二、多线程开发及注意事项

线程支持在多线程环境中,管理 PythonGlobal Interpreter Lock (GIL)变得很重要。调用 Python 函数时,调用者必须持有 GIL。否则,您可能会遇到崩溃AccessViolationException或数据争用,即损坏的内存。在执行 .NET 代码时,考虑释放 GIL 让 Python 运行其他线程。否则,您可能会遇到死锁或饥饿。从 Python 调用 C# 时要做什么如果您从 Python 调用 C#,并且 C# 代码执行长时间运行的操作(例如计算、.

2022-01-05 10:52:49 900 2

原创 PythonNet开发笔记一、PythonNet介绍及安装

介绍Python.NET (pythonnet) 是一个包,它使 Python 程序员可以与 Windows 上的 .NET 4.0+ 公共语言运行时 (CLR) 和 Linux 和 OSX 上的 Mono 运行时几乎无缝集成。Python.NET 为 .NET 开发人员提供了强大的应用程序脚本工具。使用此包,您可以编写 .NET 应用程序脚本或使用 Python 构建整个应用程序,使用以任何面向 CLR 的语言(C#、VB.NET、F#、C++/CLI)编写的 .NET 服务和组件。请注意,此包.

2022-01-04 14:26:53 6797

原创 Ubuntu16.04安装face_recognition dlib(99.9999%几率成功)

dlib==19.8.1numpy==1.18.5安装boost要执行这一行:apt-get install libboost-all-dev

2020-12-26 21:29:45 286

原创 Ubuntu16安装python3.6

记录的一个帖子。自己的阿里云一个 VPS 用的是系统 Ubuntu 16.04.6 LTS,自带的python版本是2.7.12与3.5.2,有时候要用到 python3.6,又不想卸掉原来版本。下面介绍安装 python 3.6.3 的过程,因为版本较旧,遇到一些坑,这里记录一下。从 PPA 安装安装必要的依赖apt-get install software-properties-common python-software-properties添加add-apt...

2020-11-30 15:57:39 375

原创 CentOS7安装Python3.6.8

1.首先通过yum安装python可能用到的依赖yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel2.下载源码包cd /usr/local/srcwget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz3.安装tar zxvf Python-3.6.8.tgzcd Python-3.6

2020-11-25 11:39:52 422

原创 cmake编译 Could NOT find Eigen3

cmake .. -DEIGEN3_INCLUDE_DIR=D:\eigen-eigen-323c052e1731手动指定路径

2019-12-08 14:02:58 6655 1

原创 C#反射获取对象属性字段

C#反射(Reflection)反射指程序可以访问、检测和修改它本身状态或行为的一种能力。程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性。优缺点优点:1、反射提高了程序的灵活性和扩展性。 2、降低耦合性,...

2019-11-06 09:29:01 3109

原创 C#学习之委托 delegate 以及定义、声明、实例化

学习C#有一段时间了,不过C#的委托+回调才这两天才会用,以前只是知道怎么用.前面的一篇文章,函数指针,其实是为这个做铺垫的,说白了委托就相当于C语言中的函数指针,具体说用委托有什么好处,我也不知道,但是因为你只要学C#那么回调就一定要会,回调是委托的一种.回调多用于线程间....还是用代码一点点的说明吧!现在认为自己以前不会用委托是因为手太懒,再者没有太多的必须用C#做的Demo,自己学东西都是...

2019-11-05 09:37:47 1829 1

原创 winform设计器必须创建类型的实例,但该类型已声明为抽象,因此设计器无法创建该类型的实例

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System....

2019-11-02 15:33:55 2361

原创 Winform使用Settings保存数据

1.单击“项目”,然后选择“***属性…”,然后选择“设置”。2.在“设置”中添加新设置3.试试以下代码:private void Accept_Click(object sender, EventArgs e){ Properties.Settings.Default.cb = checkBox1.Checked; Properties.Settin...

2019-10-30 15:04:29 4357

原创 centos下启动oracle监听配置图形界面

netcanetmgr

2019-09-23 16:03:27 1273

原创 linux查找大文件或文件夹

当系统的可用空间不足时,我们需要知道是哪些文件或者是文件夹占用了大量的空间,所以需要使用命令来查找。sudo du -h --max-depth=1 /home/tbb/*命令是du-h是人性化显示--max-depth是查找的文件夹的深度/是用于查找的路径,*代表路径下的全部文件和文件夹...

2019-08-26 08:46:36 294

原创 python 连接 Oracle 乱码问题(cx_Oracle)

用python连接Oracle是总是乱码,最后发现时oracle客户端的字符编码设置不对。编写的python脚本中需要加入如下几句:import osos.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'这样可以保证select出来的中文显示没有问题。要能够正常的insert和update中文,还需要指定python源文...

2019-08-08 16:04:00 389

原创 Navicat连接oracle出现 “ORA-03135: Connection Lost Contact”解决方法

近日测试搭建oracle 12c 时使用navicat premium连接数据库时候,出现了 “ORA-03135: Connection Lost Contact”按照指导到官方下载相应版本OCI,解压下载的包(直接下载,默认应该就是最新版),然后将navicat的OCI指向刚下载的OCI路径,重启Navicat,连接成功解压后的文件夹中(可以看到有一个oci.dll):navi...

2019-08-08 13:56:38 10637

转载 python发送get post请求

Requests: 让 HTTP 服务人类虽然Python的标准库中 urllib2 模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests 自称 “HTTP for Humans”,说明使用更简洁方便。Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用:)Requests 继承了urllib2的所有特性。...

2019-08-08 11:30:02 825

原创 KETTLE设置一个子段的值等于另一个子段的值

可以实现此功能的模块有两个:1.设置字段值2.计算器不要用设置字段值,设置的值的数据类型很奇怪,在后面的操作中容器出现数据类型错误:The data type of java.lang.String object does not correspond to value meta我就是被坑了几个小时。建议用计算器,很方便,选择Create a copy of field A...

2019-08-07 20:59:15 1579

原创 oracle修改数据库编码

修改数据库字符集为:utf8查看服务器端字符集select * from nls_database_parameters where parameter ='NLS_CHARACTERSET';修改:$sqlplus /nologSQL>conn / as sysdba若此时数据库服务器已启动,则先执行 SHUTDOWN IMMEDIATE 命令关闭数据库服务器,然后执...

2019-08-07 17:52:57 325

转载 Oracle创建表主键自增

创建数据库 1 2 3 4 CREATETABLESTUDENT(ID NUMBERPRIMARYKEY, NAMEVARCHAR(200)NOTNULL, SEXVARCHAR(200), CREATE_DATEDATE); 指定表名注释 1 COMMEN...

2019-08-06 16:45:43 266

转载 【CNN】理解卷积神经网络中的通道 channel

在深度学习的算法学习中,都会提到 channels 这个概念。在一般的深度学习框架的 conv2d 中,如 tensorflow 、mxnet ,channels 都是必填的一个参数。channels 该如何理解?先看一看不同框架中的解释文档。首先,是 tensorflow 中给出的,对于输入样本中 channels 的含义。一般的RGB图片,channels 数量是 3 (红、绿、蓝);...

2019-07-29 16:14:24 1018 1

原创 高级语义特征检测:行人检测的新视角

https://github.com/liuwei16/CSP可用于步态识别提取人体轮廓的前一阶段

2019-07-23 10:47:20 634

转载 人脸识别技术全面总结:从传统方法到深度学习

英国赫特福德大学与 GBG Plc 的研究者近日发布了一篇综述论文,对人脸识别方法进行了全面的梳理和总结,其中涵盖各种传统方法和如今风头正盛的深度学习方法。机器之心重点编译介绍了其中的深度学习方法部分,更多有关传统人脸识别方法的内容请参阅原论文。论文地址:https://arxiv.org/abs/1811.00116自七十年代以来,人脸识别已经成为了计算机视觉和生物识别领域被...

2019-07-22 09:01:15 1312

转载 论文笔记:Triplet Network

Triplet Network1、四个问题 要解决什么问题? 实质上,Triplet Network是Siamese Network的一种延伸,要解决的问题与Siamese Network的基本一致。 与Siamese Network一样,适用于解决样本类别很多(或不确定),然而训练数据集的样本数又很少的情况(如人脸识别、人脸验证)。 用了什么办...

2019-07-21 12:37:50 1341

转载 collate_fn,PyTorch实现自由的数据读取

很多前人曾说过,深度学习好比炼丹,框架就是丹炉,网络结构及算法就是单方,而数据集则是原材料,为了能够炼好丹,首先需要一个使用称手的丹炉,同时也要有好的单方和原材料,最后就需要炼丹师们有着足够的经验和技巧掌握火候和时机,这样方能炼出绝世好丹。对于刚刚进入炼丹行业的炼丹师,网上都有一些前人总结的炼丹技巧,同时也有很多炼丹师的心路历程以及丹师对整个炼丹过程的记录,有了这些,无疑能够非常快速知道如何炼...

2019-07-21 11:01:23 4112

原创 kettle根据数据字典转换编码为文本

转换流程如下:提示:SFDSR为数据字典数据库中的表名,为原表中要转换的一个字段。原表:数据字典:目标表:首先要自己事先建立好目标表的表结构,可能需要将做转换的一系列字段的的数据类型的长度增加。1.打开kettle,新建转换。2.编辑数据库连接。3.切换到核心对象,添加表输入,编辑表名为原表,读取要做转换的表。4.添加表输入,编辑表名为原表中...

2019-07-18 20:34:20 2880 1

原创 centos7 yum安装python3.6

sudo yum -y updatesudo yum -y install epel-releasesudo yum -y install https://centos7.iuscommunity.org/ius-release.rpmsudo yum -y install python36sudo yum -y install python36-pip查看版本:pytho...

2019-07-16 16:27:00 533

原创 mysql导出表部分数据到sql文件

mysqldump -uroot -p123456 traffic vehicle --where="1=1 limit 1000" > vehicle.sql;traffic为数据库名vehicle为表名--where后面是条件语句,此处为导出1000条数据到vehicle.sql文件。...

2019-07-16 08:47:31 8204

转载 mysql命令行导出部分数据(非sql)

在命令行模式下执行:sql语句+into outfile +'/文件路径/文件名' + 编码方式(可选)例如:select * from test into outfile '/home/test.csv'; 下面我们看下执行结果:导出查询结果图你会发现 ERROR 1290 (HY000): The MySQL server is running with the --sec...

2019-07-16 08:39:11 1028

空空如也

空空如也

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

TA关注的人

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