- 博客(24)
- 资源 (16)
- 收藏
- 关注
原创 165. 比较版本号
给你两个版本号 version1 和 version2 ,请你比较它们。版本号由一个或多个修订号组成,各修订号由一个 '.' 连接。每个修订号由 多位数字 组成,可能包含 前导零。每个版本号至少包含一个字符。修订号从左到右编号,下标从 0 开始,最左边的修订号下标为 0 ,下一个修订号下标为 1 ,以此类推。例如,2.5.33 和 0.1 都是有效的版本号。比较版本号时,请按从左到右的顺序依次比较它们的修订号。比较修订号时,只需比较 忽略任何前导零后的整数值。
2023-06-08 23:48:11 125
原创 最简单的视频编码器(一)---libx264
概述本文记录一个最简单的基于libx264的H.264视频编码器;直接调用libx264完成编码。因此项目的体积非常小巧。该编码器可以将输入的YUV数据编码为H.264码流文件。流程中主要的函数如下所示:x264_param_default():设置参数集结构体x264_param_t的缺省值。x264_picture_alloc():为图像结构体x264_picture_t分配内存。x264_encoder_open():打开编码器。x264_encoder_encode():编码一帧图像
2021-09-11 13:10:46 3001
原创 视音频数据处理入门:颜色空间(一)---转换理解
YUV颜色空间概述YV12与I420颜色空间相互转换NV12与I420颜色空间相互转换NV21与YV12颜色空间相互转换YUV转RGBI420与RGB32颜色空间相互转换I420与RGB24颜色空间相互转换
2021-08-24 20:29:58 982
原创 视音频数据处理入门:I420 图像90° 、180°、270°旋转和左右镜像翻转
一、旋转原理 图像旋转就是对应像素点的位置的改变,把对应的像素点修改到指定位置即可实现90度、180度、270度旋转。如下图以4x6为例,每个格子代表一个像素点,格子里面的数字代表当前像素的位置; SRC顺时方向旋转90度我们以上图为例,顺时方向旋转90为例,说明旋转90原理;顺时方向旋转90度,则宽和高互换,由原来4x6变为6x4;SRC[0]的位置被SRC[20]所替代,形成Rotate90[0],以此类推;最终形成图Rotate90的效果。...
2021-08-12 14:56:04 3848
原创 Git命令使用出现Cannot update paths and switch to branch xxx at the same time解决方法
产生原因 这个问题产生的原因在切换分支的时候,本地git信息中没有你要拉取的分支信息,一般产生错误是使用如下命令造成的 : $ git checkout -b branch_a origin/develop 或 $ git checkout --track origin/develop解决方法:执行git fetch命令 git fetch $ git checkout -b 分支名字 origin/分支名 ...
2021-08-07 15:13:33 5584 2
原创 Git命令使用出现Automatic merge failed; fix conflicts and then commit the result.解决方法
产生原因 这个问题产生的原因是因为git pull 的时候会分为两步, 1、先从远程服务器上拉下代码; 2、进行merge。merge时候失败了,就会出现“Automatic merge failed; fix conflicts and then commit the result。”解决方法:丢弃本地提交,强制回到线上最新版本 git fetch --all git reset --hard origin/你需要下拉的分支(默认master) gi...
2021-08-04 09:49:34 20793
转载 C++ Lambda表达式基本用法
创建一个匿名函数并执行。Objective-C采用的是上尖号^,而C++ 11采用的是配对的方括号[]。实例如下:#include <iostream>using namespace std; int main(){ []{ cout << "Hello,Worldn"; }();}我们也可以方便的将这个创建的匿名函数赋...
2019-10-15 13:36:00 147
转载 C++ 智能指针 shared_ptr 详解与示例
shared_ptr 是C++11提供的一种智能指针类,它足够智能,可以在任何地方都不使用时自动删除相关指针,从而帮助彻底消除内存泄漏和悬空指针的问题。它遵循共享所有权的概念,即不同的 shared_ptr 对象可以与相同的指针相关联,并在内部使用引用计数机制来实现这一点。每个 shared_ptr 对象在内部指向两个内存位置:1、指向对象的指针。2、用于控制引用计数数据的指针。共享所有...
2019-10-15 09:54:25 1481
转载 C++ 智能指针 unique_ptr 详解与示例
unique_ptr 是 C++ 11 提供的用于防止内存泄漏的智能指针中的一种实现,独享被管理对象指针所有权的智能指针。unique_ptr对象包装一个原始指针,并负责其生命周期。当该对象被销毁时,会在其析构函数中删除关联的原始指针。unique_ptr具有->和*运算符重载符,因此它可以像普通指针一样使用。查看下面的示例:#include <iostream>#i...
2019-10-15 09:33:35 479
转载 Github上传代码菜鸟超详细教程【转】
说来也惭愧,我是最近开始用github,小白一个,昨天研究了一个下午。终于可以上传了,所以今天写点,一来分享是自己的一些经验,二来也是做个记录,万一哪天又不记得了:) 废话不多说,直接来,这次主要介绍的是windows下的安装和使用。 【第一步】建立先仓库 第一步的话看一般的提示就知道了,在github新建一个repository(谷歌可以解决),都是可视化的界面操作,所以难度...
2019-07-30 16:46:42 879
转载 报错 ImportError: No module named model_selection 的解决办法
win10下运行了一段Python代码,出现了报错, 报错是ImportError: No module named model_selection。我定位代码到import sklearn.model_selection,我才知道原来我没有这个model。我在网上找了一下解决方法,原来是scikit-learn的版本太低。在anaconda中通过命令行查看sklearn的版本为 0.17.1...
2018-12-20 09:20:16 1673
原创 OpenCV成长之路 01、图像的读写与显示
一、工具篇工欲善其事,必先利其器。学习OpenCV,肯定少不于基本的编程工具与OpenCV库。在Windows平台下你可以选择Visual Studio、CodeBlock等,当然你也可以选择在Linux平台,用VI、codeBlock都是可以的。编程平台的选择看个人爱好以及项目的开发环境。然后是OpenCV库,你可以在这里下载到最新的版本:http://opencv.org/,最近的版本已经...
2018-12-07 10:46:39 141
转载 Tensorflow和MNIST识别自己手写的数字 finished with exit code -1073740791 (0xC0000409)解决方案
在跑alexnet的测试demo时,遇到无错跳出finished with exit code -1073740791 (0xC0000409),查出是显卡内存不足的问题,解决如下:import osos.environ["CUDA_VISIBLE_DEVICES"] = "-1" 1 2参考链接:(1)https://stackoverflow.com/questi...
2018-11-13 16:17:44 732
转载 pycharm中project使用Anaconda3中自己创建的python环境作为编译器、pycharm运行程序时在Python console窗口中运行解决方法
我们以自己创建的tensorflow环境为例。Anaconda中自己创建的环境都在这个文件夹内:C:\ProgramData\Anaconda3\envs打开pycharm,新建一个project,然后点击File->Settings->Project:[当前项目名称],出现下面界面:点击右上角add,添加一个已配置的环境: 这里我们添加了已经创建的te...
2018-11-13 14:32:06 2525 1
转载 Windows桌面共享中一些常见的抓屏技术
1. BitBlt 我想做Windows开发应该都知道这个API, 它能实现DC间的内容拷贝, 如果我们把源DC指定成Monitor DC或是桌面DC, 它就能实现抓屏功能。对于通过这种方式的抓屏, 有2点需要特别提醒:a. 在XP下我们可以通过最后的拷贝标志来控制是否拷贝layered window, 只有SRCCPY表示拷贝内容不包含layered window, 如果是SRC...
2018-11-12 15:09:54 1707
原创 websocket简单介绍(一)
对于websocket的理解,可能我和其他人的理解也是不一样的,简单的来说websocket如果分开那就是web和socket两个,所以websocket便是是浏览器和底层进程正常通信的重要途径,我对websocket的理解是websocket本身是一种协议,浏览器想要和进程进行直接通信那需要首先建立TCP连接,当TCP三四握手成功以后,浏览器会主动向TCP服务端发起一起websocket层的握手...
2018-07-31 09:59:18 507
原创 让你彻底搞懂Websocket原理
一、websocket与httpWebSocket是HTML5出的东西(协议),也就是说HTTP协议没有变化,或者说没关系,但HTTP是不支持持久连接的(长连接,循环连接的不算)首先HTTP有 1.1 和 1.0 之说,也就是所谓的 keep-alive ,把多个HTTP请求合并为一个,但是 Websocket 其实是一个新协议,跟HTTP协议基本没有关系,只是为了兼容现有浏览器的握手规范...
2018-07-31 09:57:31 1109
转载 在Linux下访问Windows共享文件夹
说明以下操作以Ubuntu为例,大家可以参考。我在Ubuntu 14.04和16.04都试过了。Windows共享文件夹如果局域网内有一台Windows主机,将指定文件夹设为共享,就可以在局域网内访问了。如果要从Linux下访问该如何操作呢?使用 mount.cifsWindows共享文件夹使用的协议是SMB/CIFS。因而可以使用Linux下的smbclient在命令行中进行操作。如果想更方便地...
2018-06-11 14:13:09 760
原创 动态获取指定窗口大小 获取鼠标所在窗口的位置,HWND
git中代码测试程序,直接创建VS2013程序代码复制便可编译,实现功能动态获取窗口大小,获取鼠标按键消息,获取鼠标所在窗口的位置,大小,窗口句柄
2017-09-18 11:25:58 8415
原创 音频AAC编码 fmepg3.3.0
文介绍一个最简单的基于FFMPEG的音频编码器。该编码器实现了PCM音频采样数据编码为AAC的压缩编码数据。编码器代码十分简单,但是每一行代码都很重要。通过看本编码器的源代码,可以了解FFMPEG音频编码的流程。本程序使用最新版的ffmpeg库,接下对比着和大家说一下3.0以上版本和2.8的版本区别:m_pCodecCtx->sample_fmt = AV_SAMPLE_FMT_S16;
2017-08-15 20:36:27 464
翻译 websocket规范 RFC6455 中文版
InternetEngineering Task Force (IETF) I. FetteRequest forComments: 6455 Google,Inc.Category: StandardsTrack A.M
2017-08-04 14:19:41 3649
simplest_encoder.7z
2021-09-23
simplest_encoder_x264
2021-09-08
YUV颜色空间转换(YV12、NV12、NV21、I420、RGB等)
2021-08-17
Virtual Audio Devices
2018-09-12
matlab扩展编程 和代码
2018-07-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人