多系统共享蓝牙设备
1. 简介
当我们在一台电脑上安装了多个操作系统,且电脑只有一个蓝牙适配器时,如果此时使用蓝牙设备(比如蓝牙鼠标),且希望切换系统时能自动连接,则会发现问题:
如果在当前系统配对后,然后跑到另一个系统下配对,再回到当前系统下会发现蓝牙无法自动连接,只能删除配对并再次配对。然而这样导致的结果就是在另一个系统下同样无法自动连接。
如此往复,永远无法实现能够在两个操作系统共享蓝牙设备。
这种情况下你可能认为是系统的蓝牙驱动有问题,然而并非如此。
2. 原理
蓝牙适配器、蓝牙设备在实际通信过程中,都是靠其唯一的 MAC 地址来匹配的。当系统和蓝牙设备配对时:
系统会保留蓝牙设备的 MAC 地址和配对 Key。
蓝牙设备也会保留系统的蓝牙适配器的 MAC 地址和配对 Key。
当同一台电脑上的多个系统分别和同一个蓝牙设备进行配对时,蓝牙设备中保留的系统蓝牙适配器的信息会被覆盖,即此次配对信息会覆盖上一次的配对信息。因为蓝牙设备是根据 MAC 地址来标识不同的蓝牙适配器的,同一 MAC 地址的蓝牙适配器在蓝牙设备里只会有一个配对 Key。
【注】Mac 地址为 48 位长度,其一般格式为 ...
LinuxShell多命令执行
在 Linux 终端下,一行多命令顺序执行主要有三种方式,其基本格式和区别如下:
多命令执行符
基本格式
作用
;
command1 ; command2
多个命令按照先后顺序执行,命令之间没有逻辑制约关系
&&
command1 && command2
两个命令为逻辑与制约关系,只有当 command1 执行正确后,command2 才会执行
`
`
数据集链接
1. 常用数据集
常用数据集
说明
BSDS500
500 张自然图像,300 训练集 + 200 测试集(PNG 格式)
CityScapes
城市街景图(同一个地点连续多张图)(PNG 格式)
DIV2K
800 训练集 + 100 测试集(PNG 格式)
Flickr2k
2000 多张自然图像(PNG 格式)
Kodak
24 测试集(PNG 格式)
LFW
超过 13000 张人脸图像(JPG 格式)
Manga109
109 张动漫图像(JPG 格式)
McGill
超过 1500 张图像,分为 Flowers、Animals、Foliage、Textures、Fruits、Landscapes、Winter、Man made、Shadows 九个类别(JPG + TIF 格式)
OpenImage
超过 1500 万张图像,主要用于目标检测和实例分割任务(JPG 格式)
Set5
5 张经典测试图像(PNG 格式)
Set14
14 张经典测试图像(PNG 格式)
TID2008
25 reference imag ...
Matplotlib常见问题
1. 显示中文乱码
问题:matplotlib 在系统上没有找到对应的中文字体。
解决:
在代码中手动指定系统上的中文字体。
1234567import matplotlib as mplimport matplotlib.pyplot as pltfrom matplotlib.font_manager import FontPropertieszhfont = mpl.font_manager.FontProperties(fname='/usr/share/fonts/xxx')# ...plt.title(u'图表标题', fontproperties=zhfont)plt.show()
【注】笔者使用的是 Arch Linux 系统,Arch Linux 上的中文字体安装可参考 Fonts。如果是其它 Linux 发行版,也可以这篇文章,其中很多中文字体都是开源的,在其它 Linux 发行版上一般也有对应安装包。
参考资料:matplotlib 显示宋体和 Times New Roman。
2. matplotlib is cu ...
2006-IEEE-Recovering DC coefficients in block-based DCT
【注】此论文中谈论的图像均为像素值在 (0,255)(0,255)(0,255) 范围内的 RGB 图像,定义点 (i,j)(i,j)(i,j) 处像素值为 f(i,j)f(i,j)f(i,j)。
1. 拉普拉斯分布特性
对于自然图像而言,点 (i,j)(i,j)(i,j) 处的相邻像素点为
{(i−1,j−1),(i−1,j),(i−1,j+1),(i,j−1),(i,j+1),(i+1,j−1),(i+1,j),(i+1,j+1)}\begin{array}{c}
\{(i-1,j-1),(i-1,j),(i-1,j+1),(i,j-1),(i,j+1),(i+1,j-1),(i+1,j),(i+1,j+1)\}
\end{array}
{(i−1,j−1),(i−1,j),(i−1,j+1),(i,j−1),(i,j+1),(i+1,j−1),(i+1,j),(i+1,j+1)}
对应的相邻像素点值为
Q(i,j)={f(i−1,j−1),f(i−1,j),f(i−1,j+1),f(i,j−1),f(i,j+1),f(i+1,j−1),f(i+1,j),f(i+1,j+1)}\ ...
Linux下查看工具官方文档
1. 简介
Linux 系统包含大量开源工具,大部分开源工具在安装时都自带手册,而手册又分为使用手册、技术手册和帮助文档等。
2. 使用手册
Linux 下非内建工具的使用手册一般都集成在 man 或 info 工具中,内建工具的使用手册集成在 help 工具。查看工具 xxx 的使用手册直接在终端运行以下命令中对应的那个即可:
123man xxxinfo xxxhelp xxx
3. 技术手册
技术手册往往包含详细的技术实现细节,Linux 下一般存在于目录 \usr\share\doc 下面,想要查看工具的技术手册可以到该目录下查看。
4. 帮助文档
有些大型的工具可能有自己的一套规则,在使用它们时就需要查看相应的帮助文档。这些帮助文档往往由它们自带的命令提供,比如 TeXLive 提供 texdoc 工具用于查找对应宏包的帮助文档、Python 提供 pydoc 工具用于查找方法\函数\类等。
Linux修改grub菜单
【注】参考自 grub 官方手册。
1. 保留上一次 grub 菜单选项
1.1 问题
每次开机时,大部分 Linux 发行版的 grub 菜单都是定位在首选项位置(即当前系统选项位置)。这就导致如果我们电脑安装了多个系统,那么每次开机进入其他系统都要重新选择 grub 菜单选项。而我们一般都是一段时间固定使用一个系统,因此如果 grub 菜单能够记住上一次的菜单选项,我们平常使用就不需要手动切换 grub 菜单选项(除非需要更换开机系统)。这样可以让我们免去每次开机都需要手动查看更改 grub 菜单选项,特别是 Winddows 系统,每次更新后基本都要重启,每次都需要盯着重启那一刻重新选择进入 Windows 系统,不胜其烦。
1.2 解决
修改 Linux 的 /etc/default/grub 文件,添加以下内容:
12GRUB_DEFAULT=savedGRUB_SAVEDEFAULT=true
GRUB_DEFAULT 可取值为选项 ID、选项名称字符串以及 saved,选项 ID 是从 0 开始计数的。
选项 ID 和选项名称字符串都是指定 grub 默认菜单选项。
...
P1439「【模板】最长公共子序列」
1. 题目
题目链接:P1439「【模板】最长公共子序列」 。
题目描述
给出 1,2,…,n1,2,\ldots,n1,2,…,n 的两个排列 P1P_1P1 和 P2P_2P2,求它们的最长公共子序列。
输入格式
第一行是一个数 nnn。
接下来两行,每行为 nnn 个数,为自然数 1,2,…,n1,2,\ldots,n1,2,…,n 的一个排列。
输出格式
一个数,即最长公共子序列的长度。
输入输出样例
输入 #1
1235 3 2 1 4 51 2 3 4 5
输出 #1
13
说明/提示
对于 50%50\%50% 的数据,n≤103n \le 10^3n≤103;
对于 100%100\%100% 的数据,n≤105n \le 10^5n≤105。
2. 题解
分析
这是一道 LCS 的模板题,但是如果只用朴素的动态规划来解,复杂度是 O(n2)O(n^2)O(n2),结果终究会 TLE。和 LCS 类似的是 LIS,然而 LIS 有 O(nlogn)O(n \log{n})O(nlogn) 的解法,幸运的是部分 LCS 问题可以用 LIS 来解。
...
LaTeX修饰符号
【注】摘自 Scott Pakin 的 《The Comprehensive LaTeX Symbol List》 。
LaTeX其他符号
【注】摘自 Scott Pakin 的 《The Comprehensive LaTeX Symbol List》 。
LaTeX数学符号
【注】摘自 Scott Pakin 的 《The Comprehensive LaTeX Symbol List》 。
LaTeX正文符号
【注】摘自 Scott Pakin 的 《The Comprehensive LaTeX Symbol List》 。