前言
一直以来都不喜欢Adobe的Media Encoder,渲染的文件贼大,字幕又不好加。最近在开发blender的插件,看能不能将blender改成像pr那样的剪辑方式。无论如何,如果PR能使用FFmpeg作为编码器就好了。这不,还真给我找到了方法。首先,当然有前人的成功才有我的可能。搜索这方面的文章,很快就能看到官方的一篇文章,介绍给PR使用FFmpeg的。其中,我们使用的是FrameServer的方法。
问题是嘛,这个文章是6年前发布的,老到掉牙!很多软件还是32位,而且已经不更新了。这些软件不是不能用,只是,64位系统用32位的软件,性能有点缩水。。。于是又经过了一番搜寻,我终...
前言
我有一个软件在虚拟机里,监听一个端口。我想在宿主机上能访问这个端口,显然,一个端口转发就能解决的事情。但是,我发现事情没那么简单。因为,这个软件太狡猾了,它的端口规定必须是在回环地址127.0.0.1上,改成0.0.0.0会阻止你进一步的操作。接下来,就要将这种不可能的事情实现。
准备
已知软件开放地址: 127.0.0.1:49158
需要在虚拟机转发到的地址: 0.0.0.0:49158
需要在宿主机能访问的地址:127.0.0.1:49158
虚拟机
前面我们提到,只要端口挂载在0.0.0.0上,就可以用端口转发完成。那么端口在127.0.0.1上呢?是不是也可以用端口转发将...
前言
近期需要使用pytorch,安装后发现没有检测到我的gpu,用conda list看,果然是安装了cpu版本。于是把原来的pytorch卸载掉,再装GPU版本的pytorch,没想到历程如此艰难。
准备
cuda、cudnn什么的就不说了吧,这个网上一堆教程。anaconda创建环境也不说了吧,本文主要说一下坑。
目标
我要装的pytorch:
torch==1.5.0
torchvision==0.6.0(这个可以去https://pytorch.org/get-started/previous-versions/看)
cudatoolkit==10.2
你很快能在官网上得到安装...
材料
模块:ESP8266-01
烧录器:USB转TTL
软件:Arduino IDE 1.8
Arduino IDE支持ESP8266
方法一:通过Arduino下载(网络非常慢)
文件->首选项,找到"附加开发版管理器网址",填入http://arduino.esp8266.com/stable/package_esp8266com_index.json
然后在 工具->开发板->开发板管理器 中搜索esp,找到esp8266 by ESP8266 Community,安装即可。
方法二:Git(结合Gitee)
进入目录Arduino安装目...
前言
快速排序的时间复杂度为$O(n*log(n))$ ,但是对于一些简单的排序来说,这个代价未免有点高。过去我们在算法:排序(一)和算法:排序(二)讨论了几个排序算法,都是基于比较的排序。其实还有一些不是基于比较的排序,能够实现复杂度为$O(n)$的排序。
计数排序
既然不是基于比较的排序,那是基于什么呢?答案是:频数表。
举个栗子,我们有数组 2,5,3,0,2,3,0,3 ,对它作频数表,然后对频数表作积分表,称之为分布表(关于积分表,详看 积分表和差分表的使用)
频数表如何得到?横坐标为数组中所有出现过不重复的数字,对每个x值,纵坐标就是x在数组中出现的次数。比如,当x=2时...
前言
优先级排序是根据优先级对数组进行排序而非对数组的值排序,这不是什么新颖的排序。
比如:数组A = { 1, 2, 3, 4 },优先级P = { 36, 3, 62, 19 };优先级越小就排在越前面,比如优先级中3最小,对应的数字是2,则2排在最前面。优先级中第二小是19,对应的数字是4,因此排序后第二个元素为4。依此类推,得到排序 { 2, 4, 1, 3 }。
方法一 vector+pair组合排序
注意的是vector排序是按照pair的first排序的,因此我们要将优先级放到first,将值放到second,让std::sort顺手牵羊。
1234567891011121...
先上一张图,一目了然
积分表
一个一维数组A,创建一个同长度的数组Integral,有:
$$Integral[n] = \sum_{i=0}^n A[n]$$
可以看到,积分表就是把前n个数加起来,这有什么好处呢?
积分表的几个特征:
积分表中两数之差,等于原数组相应索引的两数间(左开右闭)所有数之和
比如:Integral[5]-Integral[2]=31-9=22,而A[3]+A[4]+A[5]=5+10+7=22,两者是相等的
换句话说,利用积分表,求和运算变成了求两数之差。
若A中全为正数,积分表是单调递增的,积分表中最后一项是最大数,第一项是最小数
很好理解吧,如...
需求
这比例实在太小了,非常难看,所以着手使用油猴脚本改掉。
分析
通过开发者工具,了解布局。
首先发现一个mainCon的元素限制了宽度,但是去掉宽度限制后页面内容并没有放大,因此还需要往下探究。
往里面看,发现一个wrap也限制了宽度,将宽度去掉和增加宽度都不会使得内容放大。我们注意到,下面还有个iframe呢,因此还需要往里面看。
我们发现iframe也有限制宽度,同时限制了高度,将宽度设置为100%,高度设置为800px,可以发现内容放大了,宽度解决了,但是ppt显示的高度范围没有改变,滚动条还是不对,因此还需要往里面看。
我们发现,iframe里一个imglook元素...
准备
编译好的BundleFusion一只
自己的数据集一捆
如果你按照这个教程[1]进行编译BundleFusion,注意几个方面:
先把Microsoft Visual C++ 2010的东西卸载掉再装DirectX SDK June 2010
一定要用VS2013,我开始用VS2017不兼容旧版本VS的工程因此打不开工程文件,系统是可以装多个VS的。
CUDA可以用高版本,我用的是CUDA 10.2,改工程文件的时候改为相应版本的props和targets文件。我的引用路径是"$(VCTargetsPath)\…\BuildCustomizations\CUDA 1...
折腾贼久终于搞好VS中开发Cuda与OpenCV了。。。
环境
OpenCV 3.4
Cuda 10.2
Visual Studio 2017
步骤
第一步 创建项目
创建VC++控制台应用,不要选NVIDIA项目。
第二步 设置CUDA编译
右击项目->生成依赖项->自定义,在弹出的对话框勾上CUDA,没有的话说明CUDA没装好。
第三步 设置引用目录和库目录
右击项目->属性,注意配置和平台选择合适的选项,这里我选择所有配置和x64,表示Debug和Release模式都是这个配置而且生成64位程序。
在VC++目录中设置包含目录和库目录,包含目录有:
...