
工程技能
文章平均质量分 61
主要记录了算法工程师的工程技能内容
Hunter_pcx
这个作者很懒,什么都没留下…
展开
-
从源码编译支持ffmpeg(H264编码)的opencv(创建mp4视频报错:H264 is not supported with codec id 28)
H.264 是一种视频编码标准,也称为 AVC(Advanced Video Coding),由国际电信联盟(ITU)和国际标准化组织(ISO)共同开发。它是一种压缩视频数据的标准,广泛应用于各种视频格式,如 Blu-ray、在线视频流(如 YouTube)、视频会议等。原创 2025-05-23 19:17:37 · 1208 阅读 · 0 评论 -
[C++技能提升]类型归一
对于类型统一的问题(vector容器只能存放同一种类型的数据,c++17有其他容器可支持不同类型数据的存放),如果把DataType定义为每个参数的地址,则接口内部无法做类型校验(当然也可以再把类型名称也放入到另一个vector容器一起传入,但是这样不美观且操作繁琐)。最近在设计AI调用架构时,想把各个AI功能的接口定义统一并用基类的多态管理起来(即各个AI功能都继承自同一个基类,并重写init、run、release这三个接口),,想过用模板函数的方式声明这三个接口但是不支持virsual重写。原创 2025-01-25 18:38:36 · 247 阅读 · 0 评论 -
[C++技能提升]插件模式
public:// 纯虚函数// 虚析构函数。原创 2025-01-25 10:05:46 · 785 阅读 · 0 评论 -
[C++技能提升]类注册
最近在做AI信息在各个平台流转的框架设计,想要设计一种可以灵活扩展、不改变原有代码的框架,了解到了类注册。具体需求是这样的:AI算法在客户本地电脑和云端都有部署,原先AI在这两个平台下的输出格式并不统一,且每个AI功能都有自己的输出格式,导致两个平台下的AI信息无法共享,带来了计算资源的浪费,管理起来也比较混乱,因此需要一种模式将所有AI输出规范起来。原创 2025-01-24 20:09:03 · 805 阅读 · 0 评论 -
ubuntu远程桌面开启opengl渲染权限
背景:最近用windows的【远程桌面连接】登录ubuntu后(xrdp协议),发现gl环境是集显的,但是本地登录ubuntu桌面后是独显(英伟达),想要在远程桌面上也用独显渲染环境。如果是有 NVIDIA字眼的说明是独显,如果是Mesa字眼的说明是集显。1、本地登录ubuntu桌面 或者 远程ssh应该也行。2、远程桌面配置(如果还是集显环境的话)第一步:启动桌面时设置独立显卡插位。二、给远程桌面开放独显渲染权限。如果遇到失败,则重启系统也行。一、查看是独显还是集显环境。第三步:启动Xorg服务。原创 2024-12-10 16:00:10 · 956 阅读 · 0 评论 -
ubuntu安装好后网络里面没有有线网卡连接 已解决
装好ubuntu18.04.6后,发现网络配置里面没有有线网卡连接,怀疑是有线网卡驱动没有安装或者是安装好的有线网卡驱动跟硬件不匹配。简单来说,原因就是安装好的网卡驱动跟硬件不匹配。原创 2024-10-10 14:48:07 · 1015 阅读 · 0 评论 -
c++ linux通过实现独立进程之间的通信和传递字符串 demo
函数打开命名管道,并以只写模式打开。然后,我们将字符串 "Hello, parent!" 写入管道中,并使用。要通过信号实现独立进程之间的通信和传递字符串,可以使用命名管道(Named Pipe)来实现。函数打开命名管道,并以只读模式打开。最后,我们打印出从子进程接收到的字符串,并使用。定义中指定为 "/tmp/my_pipe"。函数从管道中读取字符串,并将其存储在缓冲区。函数创建了一个命名管道。在上面的示例中,我们首先使用。在子进程中,我们使用。在父进程中,我们使用。原创 2024-07-23 19:54:25 · 315 阅读 · 0 评论 -
c++跨平台编译宏区分的两种办法
跨平台编译宏的两种方式原创 2024-06-28 17:15:51 · 625 阅读 · 0 评论 -
记录:linux桌面管理基础-X11协议(X window system)
X11是X协议,版本号为11。X协议是专门被设计为linux桌面管理服务的,而linux桌面环境不像windows那样作为系统内核的一部分,作为一个普通程序运行在用户态上。该协议的设计初衷是为了linux的图形界面满足跨平台、跨网络、与具体硬件剥离、同时被多个用户使用的需求,因此该协议被设计成客户端-服务器的模式,即由xserver和xclient组成,xserver和xclient通过网络架构来进行图形接口的通信和执行绘制原创 2024-06-05 20:48:10 · 5208 阅读 · 0 评论 -
通过位运算集成各子模块
在很多场景中会有很多模块供不同业务方调用(比如各AI功能算法),比如有A、B、C、D四个子模块供4个业务方调用,业务方1需要这四个功能即A+B+C+D,业务方2需要前面三个功能即A+B+C,业务方3只需要A一个功能,业务方4只需要B一个功能。如果给每个业务方分别开一个接口,那么势必会增加代码的重复率,所以最好都使用同一个接口。原创 2024-03-18 12:03:05 · 250 阅读 · 0 评论 -
算法耗时通用优化技巧 总结
最近在部署AI相关的算法,并要求减少总耗时,从中总结出的一些比较通用的优化技巧。精髓总结一句话就是:在同一时间尽可能充分利用硬件资源。而怎么尽可能充分利用呢,方式就是多线程并行处理。原创 2024-03-11 19:36:59 · 569 阅读 · 0 评论 -
用C++或者Python解析gltf文件
gltf是类似于stl、obj、ply等常见的3D对象存储格式,它被设计出来是为了便于渲染的数据转换和传输。如果你的浏览器可以连接外网,可以通过。网址打开浏览gltf的3D对象。这里介绍两种语言下从gltf拿到网格的顶点和面片数据。原创 2023-09-15 16:29:49 · 1375 阅读 · 0 评论 -
CUDA编程模型与GPU硬件结构关系
这篇文章循序渐进主要解决以下疑问:1、CUDA编程模型为什么要这么设计?2、CUDA编程模型与GPU硬件结构的关系?原创 2023-02-08 20:16:26 · 899 阅读 · 0 评论 -
c/c++语言中的延时操作
大家在编程的过程中可能需要用到一些延时操作,比如说在使用控制台编程时,程序运行的时候DOS窗口会一闪而过,这样就会导致看不到程序在Dos界面运行的结果,这样有些小伙伴就纳闷了:怎样使得Dos窗口一直停留呢?呵呵,其实这个问题笔者也遇到过,不过笔者解决的方法很简单啦。我们只需要在min函数末尾返回之前加一段计算机延时代码就可以啦。这里有两种方法: 第一种是自定义函数,像这样: voi原创 2017-10-31 21:41:45 · 4416 阅读 · 1 评论 -
计算机的启动
寒假回来就要开始执行新年的计划了~首先是每周的一篇blog。今天看了阮一峰最新的一篇博客计算机是如何启动的,感觉写得很好,又清楚又简单。虽然自己关于计算机启动这个过程从大三OS课的时候就陆陆续续地一直有了解,但是都没有一个系统的了解,或者了解了又忘了,希望通过这次记录把这点彻底弄清楚来并且记在脑子里。另外在评论中有另外一个小哥大磊把他的博客也贴出来了,写得很详细,作为阮一峰的补充吧。转载 2017-11-18 18:13:21 · 284 阅读 · 0 评论 -
VS中MFC中的文件不能运行
在MFC编程中,我们可能会遇到过这样的问题,文件不能执行,如果打开文件夹会出现如下图的情况:图1 解决办法是:首先鼠标右击该文件夹,选择“包括在项目中”如图2所示,问题就这样解决啦,如图3所示。图2图3原创 2017-11-16 22:00:36 · 1537 阅读 · 0 评论 -
vs2013版MFC按钮点击无反应,执行不到相应的事件处理程序
大家在使用MFc编程的时候,可能会遇到:点击添加的按钮无反应,或者执行不到相应的事件处理程序。以笔者的经验来看,出现这种问题多半是由于该按钮的底层属性值错误,或者该按钮的ID号与相应的ID值不对应造成的。下面笔者举个简单的例子,来说明这些问题。原创 2017-11-16 17:44:03 · 16266 阅读 · 3 评论 -
VS版Eigen库求解大型稀疏线性方程组
众所周知,为了减小稀疏矩阵的存储内存,稀疏矩阵有专门的存储办法。但是怎么求解诸如 Ax=b(这里矩阵A为稀疏矩阵,假设x为列向量,b也为列向量)这样的方程组呢?求解这样的方程组分为两个步骤,一个是对稀疏矩阵A赋值,一个是用solve求解器求解方程组。#include "stdafx.h"#include//包含稀疏矩阵求解;#include#include#include//调用sle原创 2017-11-17 12:01:55 · 5820 阅读 · 2 评论 -
windows下schtasks的DOS命令的使用
来自:http://hi.baidu.com/nxhujiee/item/b54764ad6486f59f151073d1描述: 允许管理员创建、删除、查询、更改、运行和中止本地或远程系统上的计划任务。替代 AT.exe。参数列表: /Create 创建新计划任务。 /Delete 删除计划任务。 /Q转载 2017-11-18 20:59:06 · 1129 阅读 · 0 评论 -
C++对文件进行读写操作
1、 定义数据流对象指针对文件进行读写操作首先必须要定义一个数据流对象指针,数据流对象指针有三种类型,它们分别是:Ifstream:表示读取文件流,使用的时候必须包含头文件“ifstream”;Ofstream:表示文件写入流,使用的时候必须包含头文件“ofstream”;Fstream:表示文件读取/写入流,使用的时候必须包含头文件“fstream”;2、 打开文件打开文原创 2017-11-17 16:53:13 · 56124 阅读 · 5 评论 -
Ubuntu安装配置ftp服务器
1)安装ftp服务器sudo apt install install vsftpd ftp2)配置文件使远程可读写sudo vim vim /etc/vsftpd.conf添加:write_enable=YESutf8_filesystem=YES3)重启ftp服务器systemctl restart vsftpd原创 2022-03-11 15:53:08 · 1763 阅读 · 0 评论 -
DOS 命令大全
本文转载自:https://zhidao.baidu.com/question/59940919.html一、基础命令 1 dir 无参数:查看当前所在目录的文件和文件夹。 /s:查看当前目录已经其所有子目录的文件和文件夹。 /a:查看包括隐含文件的所有文件。 /ah:只显示出隐含文件。 /w:以紧凑方式(一行显示5个文件)显示文件和文件夹。 /p:以分页方式(显示一页之后会自动暂停)显示。转载 2017-11-18 21:12:03 · 253 阅读 · 0 评论 -
程序“编译/运行“错误分析原理
本篇文章从宏观上能让你学会这样一些大致原理:操作系统架构、程序从编写到编译运行经历的过程、可执行文件内容;并且能解决你这样一些疑问:为什么应用程序不能兼容运行在不同的操作系统上?安卓手机上的应用程序为什么就不能在同是linux内核的pc端上跑?为什么有些程序编译的时候对编译器版本有要求?为什么操作系统升级之后某些库或者应用就用不了了呢?不同种类的编译器编译出的二进制库可以相互链接吗?;最重要的是能让你学会分析解决程序从编写到编译运行过程中遇到的绝大多数问题。一、操作系统架构操作系统架...原创 2021-11-15 20:55:23 · 971 阅读 · 0 评论 -
ubuntu远程桌面win10,ubuntu远程桌面ubuntu,win10远程桌面ubuntu(亲测有效)
想要知道怎么远程的,首先得要了解两种远程桌面协议(如果不想了解的,可以直接跳过第一节)。一、远程桌面协议目前主流的实现远程桌面连接的有两种协议:远程帧缓存协议(RFB:Remote Frame Buffer)、远程显示协议(RDP:Remote Display Protocol )。RFB:这个协议实现起来比较简单,传输的主要是桌面的帧缓存信息,基本上支持所有的窗口系统,如果想要详细了解的可以看这篇文章:RFB协议解析_卡索-优快云博客_rfb协议。目前主要针对这个协议采用的服务是VN原创 2022-03-11 15:32:07 · 9416 阅读 · 1 评论 -
一文搞清楚opengl、openglES、GLEW、的关系GLUT、FreeGLUT、GLFW
简要来说,opengl、openglES、GLEW这三个都是一个图形库,可以理解为是在显卡驱动上给渲染用户一个统一的API;而GLUT、FreeGLUT、GLFW这三个是用于图形开发的辅助工具库,主要用于创建和管理OpenGL环境、操作窗口等。原创 2022-09-28 13:27:13 · 4154 阅读 · 0 评论 -
浅析Java语言与C++语言的区别
1. java中类继承,如果父类方法要重写,不用加任何关键字;而C++却要加 virtual 关键字。2. Java中,super可以表示父类,this表示类本身。3. C++的类可以多继承,即一个类有多个父类;而java只能单继承,即一个类只能由一个父类继承。4. C++类继承采用符号“:”,而java类继承采用关键字“extends”。5. C++原创 2017-11-21 16:44:57 · 3351 阅读 · 0 评论 -
C++ DLL的生成与调用
一、制作DLL库1、构建visual studio工程可以直接打开vs构建DLL工程,方法如下:New --> Project --> Dynamic-Link Library(DLL) --> 取名,选路径 --> OK另外一种方法就是通过cmake构建(建议大家掌握cmake构建工程,这对于跨平台编译来说非常有用),首先建立好源文件myDll.hpp、myDll.cpp,然后建立CMakeLists.txt文件并编写:# CM...原创 2021-10-21 11:19:02 · 2724 阅读 · 0 评论