ubuntu python opencv 实用小技巧小结
ubuntu
tmux 真的好用:
实用教程: https://wdxtub.com/2016/03/30/tmux-guide/
ctrl + b + [ : 可移动光标
C++ char 和 string 转换
SSH 挂载远程的 Linux 文件系统或者目录:
ubuntu 挂载的另一种方法:
卸载之前的挂载:sudo umount nonv(挂载目录)
- 挂载命令:sudo mount --bind /volume4/HDMP4/nonv_10.209.37.43_vol2/(要挂载的原地址) ./nonvehicle (需要挂载的目的地址)
ls -lR|grep “^-”| wc -l :快速统计某个文件夹下的所有文件的个数
ls -l|grep “^d”| wc -l : 统计某个文件夹下文件夹的个数
ps :查看进程使用情况
kill - 9 23365(进程号):杀死不需要的进程
htop: 查看显存使用情况
nvidia-smi: 查看 GPU 使用情况
watch -n 1 nvidia-smi : 每秒刷新一次 GPU 使用情况
[git 分支管理]
(https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/001375840038939c291467cc7c747b1810aab2fb8863508000): 维护代码版本神器- 重复修改保存一些文件比较很乱,git 管理起来就很方便 ^ _ ^
- git add : 添加要更新的文件
- git status : 查看仓库当前状态
- git commit -m “本次推送描述,方便以后回退历史版本”
- git log:查看历史推送
- git reset --hard 937d5b: 回退到某个历史版本(版本号的前几位~唯一就行)
- git reflog:查看命令历史(以便回到旧版本后再返回到未来的某个版本)
chmod u+x new_run.sh : 给 .sh 文件执行权限
显示文件前10行:head -n 10 test.txt
显示文件后10行: tail -n 10 test.txt
caffe-ssd
caffe-ssd 源:https://github.com/weiliu89/caffe/tree/ssd
编译 caffe 遇到 cannot find -lbopenblas 解决方法:
首先安装一些依赖包(安装时缺失什么依赖包就安装):
libprotobuf-dev
libsnappy-dev
libleveldb-dev
libhdf5-serial-dev
protobuf-compiler
libopenblas-dev
安装编译 caffe-ssd 可能会遇到的错误解决方法:https://blog.csdn.net/WYK1823376647/article/details/81084262
opencv
- opencv 安装编译实用教程:https://blog.csdn.net/neilooo/article/details/78425559
- opencv 读取的图像格式是 BGR,Matplotlib 读取的图像格式是 RGB :
- BGR to RGB : rgb = bgr[…,::-1]
RGB to BGR : bgr = rgb[…,::-1]
python
numpy:
np.sum(): 求和(np.sum(a,axis = 1) 对行求和,axis = 0: 对列求和, np.amin,np.amax 同)
np.square():求平方
np.sqrt(): 求方差
np.amin():求最小值
np.amax():求最大值
np.exp(-x) : e^(-x)
np.unique(A): 对于一维数组或者列表,unique函数去除其中重复的元素,并按元素由大到小返回一个新的无元素重复的元组或者列表
np.loadtxt() : 可把 .txt 文档以 list 取出(可转换数据类型 np.loadtxt( , int))
np.savetxt(): 可把 list 直接存储为 .txt
os
os.path.exists(new_path) : 判断文件是否存在
os.makedirs(new_path) :创建新文件,会递归创建文件夹即使上一个文件不存在
random
- random.uniform(x, y) 方法将随机生成一个实数,它在 [x,y] 范围内
其他
Python 离线安装 packges:
step1 打包: sudo pip install --download /home/deepglint/anaconda2/lib/python2.7/site-packages/ scikit-learn
step2 安装:pip install --no-index --find-links="/tmp/tranferred_packages" scikit-learn-0.19.2.tar.gz
sys.path.insert(): python 指定包路径
shutil.rmtree(): 删除文件夹
tqdm: 显示进度条
python 如果在函数里修改全局变量不会生效? 变量名前加上 global 关键字
python 实用小技巧
- 下面附上实现代码
import cv2
import os
import numpy as np
import pandas as pd
import os
import matplotlib.pyplot as plt
%matplotlib inline
root_path = '/media/deepglint/Data/deep_sort/cluster/bbox_frames'
ips = [d for d in os.listdir(root_path) # os.listdir() 对文件进行迭代操作if os.path.isdir(os.path.join(root_path, d))
]
for ip in ips:new_id = -1all_feat = []print('Extract features from ip: {}'.format(ip))ip_dir_path = os.path.join(root_path, ip) #os.path.join() 路径拼接print(ip_dir_path)datas = [d for d in os.listdir(ip_dir_path)if os.path.isdir(os.path.join(ip_dir_path, d))]for data in datas:extract_path = os.path.join(os.path.join(os.path.join(ip_dir_path,data), \'extract_feat'),'feat4cross.txt')new_feat = []f_id = -1with open(extract_path, 'r') as f: # 'r' : 读for line in f.readlines(): # 按行读取new_feat.append(line.strip().split(' ')) # .strip() 去掉行末的空格、换行符等for i in new_feat: # .split(‘ ’) 以空格分隔读取内容if f_id != i[1]:new_id += 1f_id = i[1]i[1] = str(new_id)all_feat.append(i)with open(os.path.join(ip_dir_path,'all_feat.txt'), 'w') as f: # ‘w’: 写for i in all_feat: # 'a': 追加f.write(' '.join(i)) # ' '.join(i) 把对象 i 里的元素以 空格(‘ ’: 可把空格替换为 ',' 等) 分隔f.write('\n')
import os
root = './nonv'
num = -1
line = []
files_path = './insightface.list'
for i in os.listdir(root):id_path = os.path.join(root, i)num += 1for img in os.listdir(id_path):img_path = os.path.join(id_path, img)line.append('\t'.join([str(1), img_path, str(num)]))with open(files_path, 'w') as f:for i in line:f.write(i)f.write('\n')
ubuntu python opencv 实用小技巧小结相关推荐
- python︱sklearn一些小技巧的记录(训练集划分/pipelline/交叉验证等)
sklearn里面包含内容太多,所以一些实用小技巧还是挺好用的. sklearn.cross_validation 如果没有了,则需要使用 sklearn.model_selection 文章目录 1 ...
- 新手写论文实用小技巧Winedt/Latex
Latex写论文实用小技巧 纪研究生第一篇论文 换行 文章中引用参考文件标号 引用公式 检查错误拼写 补充-公式内对齐 小结 纪研究生第一篇论文 为了记录研究生写完的第一篇论文截稿,其中有一些值得注意 ...
- Excel表格中一些你不知道的鼠标双击实用小技巧
Excel表格中一些你不知道的鼠标双击实用小技巧 目录 Excel表格中一些你不知道的鼠标双击实用小技巧 1.鼠标双击自动填充整列公式, 鼠标放在单元格右下角,鼠标指针变成十字时双击鼠标右键,整列汇总 ...
- 送你16个matplotlib绘图实用小技巧(附代码)
来源:雪山飞猪 本文约2800字,建议阅读10分钟 本文为你分享16个matplotlib绘图实用小技巧. 标签:数据分析 1. 添加标题-title import numpy as npimport ...
- Python的一些小技巧小知识
Chapter 12. HOW-TO 本章内容记录Python的一些小技巧小知识.来源是网上摘录或自己学习所得. 如何判断操作系统类型 import sys print sys.platform pr ...
- 2021-01-20 Python编程特殊小技巧汇集
Python编程特殊小技巧汇集 Python作为一种高级编辑语言,有很多使用的小技巧,分享一期. 1.变量值互换 a = 0b = 1a,b = b, a 2.连续赋值 a, b = 2, 1 3.自 ...
- VC的若干实用小技巧
Visual C++6.0(5.0)开发工具功能非常强大,但是对于初学者来说,却有很多细节的问题需要注意.作者搜集整理了以下一些实用小技巧,希望对初学者有所帮助. 1:使用vc开发项目时,常会遇到这种 ...
- 实用小技巧(一):UIScrollView中上下左右滚动方向的判断
https://www.jianshu.com/p/93e8459b6dae 2017.06.01 01:13* 字数 674 阅读 1201评论 0喜欢 1 2017.06.01 01:13* 字数 ...
- VC的若干实用小技巧 (如何干净的删除一个类)
Visual C++6.0(5.0)开发工具功能非常强大,但是对于初学者来说,却有很多细节的问题需要注意.作者搜集整理了以下一些实用小技巧,希望对初学者有所帮助. 1:使用vc开发项目时,常会遇到这种 ...
最新文章
- R语言使用ggplot2同时可视化dataframe的多个数据列实战:多个数据列可视化在同一个图中、多个数据列可视化在多个图中(纵向多个子图)
- python编程基础语法-Python编程入门基础语法详解
- 菜鸟学习JavaScript小实验之函数引用
- 制作系统盘,重装新系统。
- Mac入门--Apache/Php/Mysql的开启关闭
- 用 RxSwift 实现通用的响应式转场
- Python更新数据库,解决转译字符与TypeError: XX format: a number is required, not str报错
- 深度探索ONNX模型部署
- ureport2报表详细使用(一)-集成及配置
- Ubuntu 18.04安装Eclipse教程
- 银联云闪付控件支付--python版本签名、验签代码
- html的外部调用函数,如何在HTML中调用外部JavaScript函数
- 中国大陆新身份证号码算法
- Linux的oracle账户解锁,如何解锁Oracle数据库中账号
- ci定位 lac_LAC、CI、小区、扇区、基站都是什么
- Google Guava简介
- CentOS 8上安装Docker
- blazeds与spring的结合使用
- intel parallel studio xe 2020 Update 4
- 计算机网络脆弱性评估方法研究