python使用gdal

本文为原创文章,转载注明出处,欢迎关注网站https://hkvision.cn 缘起 一个项目需要用GDAL这个库,然后去稍微深入看了下这玩意,感觉还是有很多坑的。 简介 就不介绍了,需要用这玩意的肯定知道这是啥 读写 最重要的肯定是读写 读:……

阅读全文

Word中写LaTeX公式

本文为原创文章,转载注明出处,欢迎关注网站https://hkvision.cn 缘起 大家都知道Word和LaTeX都是优秀的写文档的工具,但是从程序员的角度,个人更喜欢LaTeX一些。但是由于一些原因(很多人只会用word),导致生活中我们必须要使用word,这就导致我们可能需要将LaTeX编译出来的pdf文件转为Word文件,具体的转换方法有很多,我们暂且不表,这里我们专门来讲如何在Word中优雅的写LaTeX公式(因为很多转换都会在公式上出问题)。 LaTeX公式神器 首先向大家介绍一个LaTeX公式神器,名字叫做mathpix。 mathpix能够将公式图片转换为LaTeX公式代码,是不是感觉超级强悍!!!我们看到一个公式的时候再也不需要自己手动敲公式代码了,直接截个图就能出现LaTeX代码。(甚至可以识别手写的公式,tql!!!) 公式转Word mathpix可以直接将LaTeX公式复制为MS Word……

阅读全文

g++中的rpath和runpath

本文为原创文章,转载注明出处,欢迎关注网站https://hkvision.cn 缘由 最近在弄Linux上的程序,然后由于涉及到要调用mkl的包(armadillo中用mkl+openblas要快很多),而mkl安装的时候库是不会进入/usr/lib这样的系统路径下的,然后引发了一些问题。 链接 稍微对程序的加载等方面熟悉一点的童鞋会知道,C++分为编译链接和运行两个部分,对于g++这样的编译器来说,需要链接器知道要加载的动态链接库(共享对象)的位置,对于一个二进制文件来说,在运行的时候也需要知道动态链接库的位置,这就涉及到两个链接,一个是编译时链接,一个是运行时链接。 在g++中,这两个链接是由两个参数来控制的,一个是-L,一个是-Wl,-rpath,由于之前弄明白链接的过程之后使用了这两个参数,程序没有出问题。但是这次我发现即使配置了这两个参数仍然有问题,上网查了一下,又深入了一点点。 rpath和runpath 这涉及到另外一个小知识,大家应该知道Linux中的可执行文件是elf格式的文件,这种文件以段来进行区域划分,在可执行文件的elf中,就存在一个section,名字叫做rpath,这里面存储了执行这个文件的时候搜索库的位置,因此在加载可执行文件的时候就会在这个位置搜索库。……

阅读全文

Ext4文件系统

本文为原创文章,转载注明出处,欢迎关注网站https://hkvision.cn 缘起 接上面的文件系统介绍,接着介绍一下Ext4文件系统 Ext4的历史 知乎上有一篇文章,Ext4的历史讲的较为详细,可以直接参考,这里只简单讲一下。 Ext4由Ext2,Ext3发展而来,从结构上是兼容Ext2/3的,也就是说你可以在不损失数据的情况下,直接平滑过渡到Ext4文件系统,这一点上Ext4是占有极大的优势的(与XFS等其他文件系统相比)。 对于Linux,Ext系列的文件系统就像亲儿子一样,可以说Ext系列文件系统的发展就是伴随着Linux发展的,因此实际上Ext系列的文件系统和VFS即为相像,甚至于部分结构是嵌在Linux中的而不是Ext中。 Ext4的一些特性 和Ext3相比,Ext4有一些很有意思的特性……

阅读全文

文件系统介绍

本文为原创文章,转载注明出处,欢迎关注网站https://hkvision.cn 缘起 这段时间研究了很多和文件系统有关的内容,于是打算写一篇博客记录一下,最近太忙都没时间打理博客了。 为什么要文件系统 文件系统这个东西是一个随着计算机发展而必然会产生的产物,我们以个人PC为例,现代的个人PC五大件:CPU,主板,显卡,硬盘,内存。文件系统就是专门为硬盘准备的。 我们想象一个场景,CPU哼哧哼哧的算了一个结果出来,放在内存里面,这个时候你想让这个结果持久化,也就是永久保存,即使我关机了,重新开机之后我也能读到我计算的结果,硬盘的作用就体现出来了,我们将结果放在硬盘里面,下次咱就可以读到了。但是我们思考一下,结果是如何存在硬盘中的呢? 硬盘 首先我们来看一下硬盘是啥,这里我们先局限于机械硬盘(HDD)。……

阅读全文

理解shell

本文为原创文章,转载注明出处,欢迎关注网站https://hkvision.cn 缘起 最近在看《深入理解操作系统》,抛开了汇编那一块,书里面很多例子是拿Unix shell来举例的,这使得我对此有了更多的感悟,特此记录一下。 shell与终端 shell不是终端,平时容易弄混的原因是因为这两个东西总是一起出现。准确来说,单独的终端是没有任何意义的,因为这个终端只能回显你输入的一堆字符,而不能执行你输入的命令,所以一般来说,你打开一个终端之后(打开终端是处于一个进程中),同时会执行一个shell(linux中是调用execve这个函数来在一个进程中执行另外一个程序,可以先fork一个子进程,然后在这个子进程里面执行shell)。 shell做的事情 基本的shell功能就是解析用户输入的命令,解析为可执行文件,参数,环境变量等等,然后fork一份子程序,子程序调用execve函数来执行你输入的命令。此外,shell会内置一部分指令,例如quit这个指令并不是一个可执行程序,但是输入在shell中就会退出shell。……

阅读全文

Hyper V安装ENVI

本文为原创文章,转载注明出处,欢迎关注网站https://hkvision.cn 缘起 最近的任务要用到ENVI(除非我决定手撸一个影像空间匹配,逃…),然后,我又不想ENVI这个我平时可能用不上的软件直接装在电脑里面(而且还是破解版,万一有个毒啥的),于是我决定用虚拟机装ENVI 虚拟机选择 说到虚拟机嘛,自然说说选择的问题,个人电脑三大虚拟机阵营——VirtualBox,VMWare Workstation,Hyper-V。前两个我都用过,说实话,也许是我之前电脑比较渣的原因,用起来都很不爽(虚拟机卡成ppt),而且,这两个玩意真的不好卸啊,不如试试微软自家的Hyper-V,集成在操作系统里面的。 家庭版开启Hyper-V 首先遇上的一个问题,笔记本厂商装的正版Win10是家庭版,而家庭版是不带Hyper-V的,需要手动安装激活一下,这个不难,网上很多教程,批处理一键搞定。……

阅读全文

华为软件实习生笔试

本文为原创文章,转载注明出处,欢迎关注网站https://hkvision.cn 缘起 做了个华为实习生的笔试,3道题,2小时,比字节和阿里要好点 题目 明日之星 题目名字叫明日之星,就是一个投票,输入一行人名(投给的人),然后统计谁的票数最高,输出票数最高的人的名字,然后如果有重票的,就按字母表来 由于忘了python多关键的排序咋弄的了,就写了个有点问题的 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 import sys if __name__ == "__main__": line = sys.……

阅读全文

用C++实现一个命令行进度条

本文为原创文章,转载注明出处,欢迎关注网站https://hkvision.cn 缘起 最近做GWPCA,在带宽比较大的时候速度太慢了,需要有个进度条指示一下,然后我去找进度条的库,发现github上面的C/C++的相应的库似乎没有能在VS下跑的,自己花了点时间写了一个。 效果 实现 大概需要考虑这样几个要素……

阅读全文

PCA与GWPCA

本文为原创文章,转载注明出处,欢迎关注网站https://hkvision.cn 缘起 其实没什么缘起,本人的专业是地理信息系统,结果之前全写的计算机的内容,貌似完全偏题了,这次我来写一下最近做的GWPCA的内容。 PCA 原理 中文名叫主成分分析,做数据分析的人一定对这个不陌生,一般来说做PCA的都是用于数据降维,数据压缩等等。那么为什么这个PCA能够做到数据降维呢? 首先,大家明确一点的是,一堆数据给你了,那么这个数据一定得是有意义的数据,也就是说,我给你n个数据,我希望你能给我n个不同的信息(当然一般不可能),你别给我了n个数据,结果你给我的n个数据是一模一样的,那和给我1个数据没有什么区别。那么用于描述这堆数据的有意义的程度的一个指标——信息熵,就出来了。也就是说你这堆数据到底蕴含了多少信息。 那么一堆数据是没什么意思的,但是这堆数据里面蕴含的信息才是我们需要关注的内容,那么有没有什么办法能够让我们将这堆数据的最精华的部分(也就是蕴含的信息,剔除了冗余的部分)选择出来呢?这个时候我们的主成分分析就能派上用场了。……

阅读全文