自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++标准的一些特性记录:C++11的constexpr

c++11特性之constexpr

2024-09-14 10:42:44 212

原创 C++标准的一些特性记录:C++11的nullptr

c++11特性之nullptr

2024-09-14 10:41:46 113

原创 C++中文处理问题:string与wsting互转

但是没有专门说在C++代码中如何处理string和wstring的互转。这里补充一下,在C++中,string是基于char的,而wstring是基于wstring,所有相关的函数都是不一样的,比如cout是处理string,而wstring就需要专门的函数wcout来处理。因为在C++代码中,通过指针去移动地址是频繁的操作,而移动多少算一个字符,在string和wstring中是大不一样,而且和编码有关,比如GBK和UTF-8的移动规则就不一样,所以,在C++的多语言编程中,这两个东西就是至关重要的。

2024-09-12 14:57:56 110

原创 OPENCV清晰度判断(三)

另外两种清晰度判断思路

2024-06-28 14:47:10 411

原创 OPENCV清晰度判断(二)

这一篇里面主要说的是用sobel算子,或者是拉普拉斯算子来进行梯度的计算,根据清晰的图像梯度更大的逻辑来判断图像的清晰度。不过这种算法有一个问题,就是整个图像是有足够的信息来提供梯度,或者换句话说,图像大部分区域都是有效区域。在实际项目中,碰到一种拍摄细胞的情况,需要对细胞对焦过程中的图像进行清晰度判断:对于这种情况,直接计算图像的梯度,是不太有效果的,因为整个图像大部分区域的梯度都是一样的(模糊的,清晰的,只有小部分区域会有一些梯度差别),所以直接计算整图的梯度方式是无效的。

2024-06-28 14:46:25 1664

原创 DCGAN:卷积GAN

论文提到,评价一个无监督学习出来的模型,就是拿这个模型做其他监督学习任务的feature extrator,也就backbone部分,看看提取图像特征的能力怎么样。DCGAN网络的输入也是一个符合标准分布的噪声Z,最后从判别器出来的结果是一个single sigmoid激活结果(标准的识别网络,论文中没有提到具体的判别器网络结构)。论文在CIFAR-10,对比了这个判别器与其他一些无监督学习方法的性能,比如K-mean等,因为论文比较老,一些具体的对比没有太多意义,所以这部分就简单描述一下了。

2024-06-20 10:40:26 234

原创 C++编译器优化级别

两者主要的区别在于/O1使用的是/Os,就是用于告诉编译器去控制大小。而/O2用到的是/Oi和/Ot,/Ot就是优化速度。The /Os and /Ot compiler options specify whether to favor size (/Os) or speed (/Ot) when optimizing code.在C++程序编写过程中,有很多编译优化的选项可以调整。/O1,/O2这两个组合由下面的一些优化项组成。/Od就是告诉编译器不进行优化。/Og已经不再使用了。

2024-06-20 10:39:22 214

原创 LAPGAN-拉普拉斯金字塔生成网络

在最后一层,因为图像尺寸已经足够小,就不需要下采样再上采样作为条件输入了,直接通过对应的噪声向量z作为输入,通过生成器生成的图像和原图一起对判别器做训练即可,也就是标准GAN的训练方式,而不是CGAN的方式。由于没有更高层的参考,这一层直接继承了高斯金字塔的特性。上采样的逻辑有,但是拉普拉斯金字塔从哪来呢,这就是GAN网络的作用了,每一层的拉普拉斯由一个GAN网络来代替。从一个随机噪声z入手,将上面的过程反过来,上采样之后加上拉普拉斯金字塔的对应层,逐步恢复,或者生成出高分辨率的图像。

2024-06-05 10:28:40 68

原创 CEF框架:CEF中的窗口

在初始化过程中,还有两个内容可以拿出来说一下,就是CEF中的窗口和消息循环。这一篇说一下窗口。和前面的文章一样,还是以CEF中的标准示例为例来说明,最后给出一个小的例子:CEFSIMPLECEFCLIENT。

2024-06-05 10:27:36 215

原创 CEF框架:各种各样的Handle(四)——CefURLRequest,发起HTTP请求与处理

OnRequestComplete,也就是当requst请求得到响应后,CEF框架就会调用这个函数,在上面的代码中可以看到,就是调用了callback_方法(这个callback就是记录了JS的匿名方法了),把对应的download_data返回到前端显示。为了节省篇幅,我将这个类中的所有注释全部去掉了,这个类就是定义了在HTTP请求的整个过程中,几个关键事件的钩子函数,这个几个函数都是纯虚函数,所以需要完成URLREQUEST的使用的话,自定义一个类对这个几个函数都需要重定义。

2024-05-27 17:25:45 282

原创 Visual Studio中调试信息格式参数:/Z7、/Zi、/ZI参数

一般的调试信息都保存在pdb文件中。

2024-05-27 17:23:44 414

原创 CEF框架:各种各样的Handle(三)——拦截Http的请求与响应

前面有两篇提到了CEF框架中的各种各样的HANDLE,然后中间一段时间关注NodeJS去了,今天再补充一点CEF的东西:利用CEF框架中的各种Handle来拦截Http请求与其响应。也还是基于CEF示例代码中的CEFSIMPLE来说明。

2024-05-24 09:06:00 373

原创 Visual Studio中MP编译参数

MD 或 -Mp:这些选项告诉编译器在编译过程中生成依赖关系文件(.d文件),这些文件记录了源文件和其依赖的头文件之间的关系。在编译C或C++代码时使用OpenMP,通常需要特定的编译参数来启用这一功能。总的来说,MP编译参数主要涉及到并行编程的支持以及依赖文件的生成,它们对于提高编译效率和管理项目依赖关系非常有用。-fopenmp:此参数启用OpenMP支持,允许编译器识别并处理OpenMP的编译指导语句。-lpthread:链接线程库,在使用OpenMP时通常需要添加这个参数以提供线程支持。

2024-05-24 09:05:16 365

原创 NodeJS源码分析(一):编译与构建

从这一篇开始,打算进一步的研究nodejs的相关内容。个人觉得,除了看官方文档之外,再进一步的了解一个框架和系统,最直接的就莫过于阅读它的源码了,所以,我决定开始研究nodejs的源码,并记录这个过程。研究源码的第一步当然就是下载并编译出来。

2024-05-21 14:34:37 286

原创 CGAN:条件生成式对抗网络

基于最基本的GAN网络,后面衍生出了大量的生成式网络,接下来准备将这些各种各样的GAN网络的论文进行一下解读。这一篇来说一下CGAN,条件生成式对抗网络。CGAN的这篇论文比较短:《Conditional Generative Adversarial Nets》,只有7页,内容也不多,主要就是在GAN网络的基础上增加了一些先验知识,也可以说是label。

2024-05-21 14:33:07 265

原创 DeepLab V3+: 引入可分离卷积与Decoder网络

金字塔池化层:Spatial pyramid poolingEncoder-Decoder模型。这个金字塔池化的概念在V2和V3两片论文中已经详细的讲过了,也就是前面两篇中提到的ASPP。

2024-05-13 11:59:34 134

原创 Visual Studio构建NodeJS原生代码在Electron中的报错问题

这个标题有点长,相对是一个比较具体的场景,但是这个问题在我自己的实际开发中,确实困扰了我一段时间。因为在windows下做设备驱动,上位机的开发中。但是这种方案打包出来的node文件,直接在electron里面使用的话,会直接报错!

2024-05-13 11:58:09 196

原创 C++异步回调编程相关:lambda表达式,函数指针,std::function

在C++编程中,异步的回调调用是一个非常普遍的场景,而回调的调用最基本的方式是使用函数指针的方式,这个应该是在C编码环境中,换到C++的编码环境中,std库和C++11以后的标准提供了两外的选择。

2024-04-28 14:27:44 92

原创 DeepLab V3: V2基础上去掉了CRF的改进版ASPP

To handle the problem of segmenting objects at multiple scales, we design modules which employ atrous convolution in cascade or in parallel to capture multi-scale context by adopting multiple atrous rates. 各种atrous rate的空洞卷积核进不同方式的链接,比如级联结构,平行结构等,后面会提到。

2024-04-28 14:25:23 246

原创 nodejs中使用node-addon-api框架:本地子线程调用JS代码

在很多场景中,前端的JS界面调用本地的C代码后,C代码会启动一些本地线程,来个跟踪本地的一些任务的完成情况,然后希望能通过回调的方式通知到前端的JS代码,前端的JS代码就通过箭头函数的方式来获取本地设备的任务完成情况。我们这一篇就来说一下,具体怎么解决这两个问题,来完成这种场景的调用。

2024-04-17 15:22:31 270

原创 nodejs中的napi框架:C代码中返回promise做异步调用

前面的文章,说了下JS与C的互相调用。这些调用都是同步调用完成的,接下来几篇来说说JS与C之间的异步调用。首先是说一下JS异步调用C的本地代码,基本逻辑就是JS调用一个比较费时的C本地代码,比如等待一个网络数据等,那么在JS代码中,肯定不会阻塞主线程去一直等待这个操作的完成,而且在nodejs里还是单线程的方式,所以这个动作肯定是异步调用完成的。

2024-04-17 15:20:53 120

原创 nodejs中napi框架的使用:JS与C的互相调用

NodeJS的napi框架简介,以及在napi框架下JS与C代码的参数互传

2024-04-15 09:20:50 296

原创 DeepLab V2: 改进版的DeepLab V1

摘要部分开门见山的就提出了论文的三点贡献。空洞卷积在dense prediction任务中(像素级预测任务)可以有效的控制感受野,或者说特征图尺寸(通过空洞率)。而且在扩大感受野的同时不用增加额外的参数和计算量。提出了空洞卷积金字塔结构(atrous spatial pyramid pooling - ASPP)来处理多尺度问题。

2024-04-15 09:18:55 191

原创 DeepLab V1:全连接CRFs的语义分割网络

摘要部分提到了:这一段的意思是说,对于普通的DCNN网络,最后一层对物体的边界分类的不够好(high level高层语义与low level的低层语义精确度的平衡问题),而deeplab算法就是引入了CRF来解决这个问题。然后就是引入了空洞卷机来解决计算量的问题。所以,这篇论文提出的两个主要贡献就是在普通CNN的网络基础上(论文以VGG为backbone),引入了CRF和空洞卷积。

2024-04-09 23:22:41 202

原创 使用C++语言构建基于mysql API的统一数据库访问接口

在java这种web领域的后台语言里,操作数据库的框架已经炉火纯青,非常的成熟,包括了关系型数据库和非关系型等。关系型数据库中的各种ORM框架,那操作起数据库来说那是一个高效和方便。但是作为一个后台语言的C++来说,感觉一直没有一个特别好用的数据库框架。但实际上很多数据库的基本API接口都是提供的C或者C++的API接口函数。。这些API都是一些最基本的操作,比起java中的各种框架来说,封装程度差的不是一点半点。

2024-04-09 23:18:58 134

原创 nodejs的线程模型和libuv库的基本使用

1. nodejs的单线程事件驱动模型2. libuv的eventLoop3. libuv的async_handle的使用及使用过程中的几个坑

2024-03-22 18:00:35 571

原创 使用VisualStudio集成开发nodejs的addon项目

我的工具暂不考虑跨平台的事情。这里是创建一个普通的DLL项目,带有导出项的话,是定义了一些宏定义,直接对外暴露一个导出类的项目,简单起见,用普通的DLL项目即可。第一步省略了,也就是第三步也没有必要了,因为使用VS进行开发和构建的话,就已经是在组织一个sln的VS构建环境了。而在VS的IDE中,是不能创建一个所谓的.node的项目的。这样就可以得到node文件里的输出,也验证了我们之前的结论,.node文件就是一个改了名字的动态库(windows平台下就是DLL文件)

2024-03-22 17:57:48 276

原创 nodejs集成C++代码:手写简单的addon

在这个专栏里,已经提到过web系统中c++的两大应用场景了:assembly和cef框架的应用,这两个可以说都是客户端,也就是B端的应用。C++在web体系里面还有一个比较常见的应用场景,也就是在nodejs上的集成应用,nodejs相当于是一个后台服务器,对应的是web B/S架构的S端。这一篇就来给nodejs集成C++代码开个头。

2024-03-12 20:59:28 198

原创 编写一个简单的cmakelist.txt

上一篇提到了cmake的设计目的与作用,这一篇就来手动编写一个基本的cmakelist.txt,并演示一下如何生成不同平台的构建文件。

2024-03-12 20:56:09 231

原创 cmake工具的使用及cef的CMakeLists初步分析

cmake的设计目的,作用和基本使用

2024-03-08 16:46:07 218

原创 构建cef基本框架及构建过程中的参数说明

CEF框架的代码,及其编译版本的构建过程。构建过程中的几个编译参数扩展说明。

2024-03-08 14:42:14 355

原创 C++ static修饰符的深入研究

此外,static成员变量也不能在类的构造函数中初始化,因为它们是被类的所有对象共享的,如果在构造函数中初始化,每次创建类的对象都会导致static成员变量被重新初始化,这与static变量的设计初衷相违背。上问提到了,这里的变量x是不能被初始化的,根据上面的实验,我基本上可以理解了前文提到的:“当一个static成员变量在类内部被初始化,它会在每个包含该头文件的源文件中产生一个定义。我对这块的疑问就是,static这个修饰符到底在C++代码,特别是类中的静态成员变量和函数中起到什么样的作用,

2024-03-07 09:51:41 201

原创 C++字符集问题:windows框架中的其他字符类型及其转换

windows编程框架中的各种字符类型及其转换方法

2024-03-01 15:30:10 224

原创 C++代码中的字符集问题:char和wchar_t

在前一篇的文章中,碰到的一个坑就是因为要躲开MFC中的一个CString类导致的各种问题。话说回来,在C++的程序中,各种各样的字符类型处理也是一个比较麻烦的事情,特别是处理的文本里面有中文的时候。在这个C++和CEF的系列中,就花一些篇幅来说说C++程序中的一些字符类型和相关的处理。今天先从最基本的字符集开始。我觉得在字符类型处理过程中,最重要的一点就是要区分两个概念:字符集和字符编码规则,这两个概念有时会混在一起用,但实际上是有区别的。

2024-02-29 22:01:06 456

原创 C++编译器优化问题趟坑:std标准库的vector报错

如何判断DLL的编译模式

2024-02-29 16:01:39 248

原创 【实战】CEF框架集成MFC DLL的一些坑

如何在CEF框架中集成MFC的代码

2024-02-20 10:33:18 1399

原创 CEF框架中的一些宏定义(二):CEF_CURRENTLY_ON

在Browser进程中在CEF框架中,很多代码都需要由这个browser的主线程来执行,宏定义CEF_CURRENTLY_ON就是用于这个判断的。

2024-01-26 18:01:06 400

原创 CEF框架中的一些宏定义(一):CHECK & DCHECK

cef框架中的check与dcheck宏

2024-01-22 11:42:10 1012

原创 CEF框架的退出机制代码分析

cef框架的退出机制与相关源码分析

2024-01-18 11:55:56 722

原创 CEF框架:各种各样的Handle(二)

上一篇关于handle的文章已经把cef框架的app和两个进程browser和renderer的handle的基本逻辑说了一下。这一篇继续上一篇,将上一篇图中的另外几个handle都说一下。

2024-01-18 11:00:02 667

空空如也

空空如也

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

TA关注的人

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