Squoosh CLI使用教程
Squoosh 是Google开源的压缩图片工具, 基于网端, 支持多种格式, 非常好用。可惜的是不支持批量操作, 在之前的文章中, 我利用selenium实现图片自动上传下载, 实现批量操作:
利用selenium批量调用Squoosh压缩图片 | Monkey’s Hut
而在Squoosh新的版本发布后, 有了CLI版本, 可以直接在命令行中调用Squoosh压缩命令, 但是安装的过程中, 遇到点Bug, 因此记录一下, 供大家参考。Bug主要来源于node版本、Squoosh更新造成的, 可能在后期的版本中这些这些bug不会存在, 所以这篇博客的时效性较强, 仅供参考。
1 环境配置
Windows 10
node v16.5.0
npm 7.20.2
squoosh-cli
2 安装1 Nodejs
Node.js下载并安装, 旧版本的Nodejs 可能会导致的CommonJS语法报错, 如下:
SyntaxError: The requested module '@squoosh/lib' is expected to be of type Commo ...
SNAP基础操作以及获取参数信息的方法
前言由于SAR本身涉及的原理和知识很多, 一些重要参数很难直接获取,对新手很不友好。利用第三方软件比如SARScape、SNAP等可以很快熟悉SAR相关的处理流程以及快速获取有用信息。SNAP相比于其他软件有几点优势: 开源、免费、持续更新、社区交流活跃等。
本文展示如何利用SNAP对SAR图像进行裁剪和配准等操作, 以及提取一些基础信息, 可作为InSAR和TomoSAR的前期处理。
环境:
Windows 10
SNAP 9.0.0
数据准备公共SAR图像数据可以在ASF Data Search下载, 有Sentienl-1等其他卫星的数据。
需要注意的是下载前注意其工作模式和图像分辨率, 在IW工作模式下, 建筑可能看不清。
我使用的是TerraSAR-X在20080704-20091122期间在巴塞罗那探测的SAR图像。其工作模式为SM, 极化方式VV, 输出数据格式SSC。
单个SAR图像文件构成如下:
数据说明:
文件名
类型
说明
TSX1_SAR__SSC______SM_S_SRA_20080704T174109_20080704T174117 ...
利用selenium批量调用Squoosh压缩图片
背景下载图包的时候往往都是原图,图片大小都非常大,一张图可能得3-5M, 而我平时就是在电脑和手机上看看图片, 对分辨率、色深和细节没有太严格的要求,因此往往我会把图片有损压缩,在肉眼可接受的范围内减少图片占用空间的大小。因此找到一个合适的压图工具就必不可少。压图工具的要求有几个:
支持windows
可离线
支持多格式
可批量
运行速度快
测试比较几款压缩工具的比较:
名称
缺点
优点
样张压缩率
速度
TinyPng
在线,单张图不超过5M,不可调参,压缩速度慢
有API,支持png和jpeg
74%
慢,上传耗时
ImageOptim
只支持mac
pingo
压缩率不高
命令行+GUI,可批量
42%
快
pngquant
只支持png
命令行可批量,可调参
Riot
压缩率不高
可批量,可调参,体积小,多格式
50%
一般
XnConvert
压缩率不高
GUI,可批量,可调参,多格式
51%
较快
Squoosh
不支持批量,web app无命令行
开源,可离线,可调参,压缩率高
76%
一般
尝试的工具有很多, 但是要 ...
Win10设置新建文本文档快捷键
环境
Windows 10
Python 3
背景由于我经常写脚本,有一个需求是,在当前目录下新建txt,然后更改文件后缀,比如.py或者.js之类的。在windows中,一般来说有两种方法:
右键 > 新建 > 选择文本文档
打开记事本(cmd或者快捷键) > 设置保存位置
我比较倾向于第一种方法,因为可以绕过手动选择保存路径。但是,我的右键菜单是长这样的:
非常长,点击的话还要找半天,还可能会点错,非常烦。
解决方法于是我想找一个能使用快捷键的方法。我首先想到的是AHK,流程大概如下:
设置快捷键 > AHK模拟右键 > w > 从下往上数数 > 回车选定
这样做坏处是,一旦文本文档的位置发生了变化,那么我们要重新编辑脚本,所以这种方法也不好。后来我在知乎看到了这样的回答:
按下win+r组合键呼出运行,输入regedit点击运行打开注册表,定位到
HKEY_CLASSES_ROOT\Local Settings\MuiCache\407\AAF68885@%SystemRoot%\system32\notepad.exe,- ...
在Android Studio平台用JNI对接OpenCV
OpenCV在Android Studio中有3中方式调用:
Java API
JNI + .so
JNI + Cmake + 源码编译
准备环境
Win10
Android Studio 3.6
OpenCV Android SDK 3.4
NDK 16
注意不同的版本之间的对应关系:
OpenCV
NDK
minSdkVersion
3.4
16
19
4.2
21
21
4.3
21
21
1 创建c++项目
2 NDK变量设置
演示教程修改文件activity_main.xml将TextView标签替换成ImageView标签,修改如下:
1234567891011121314<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android&quo ...
关于python2和3中字符编码的问题
公司买了一个继电器控制器,通过与上位机建立socket TCP连接,可以发送相关指令进行控制,但是开发资料给的是python2的代码,我想移植到python3中,里面就遇到了一系列的环境的问题,解决过程异常曲折。
源码如下:
12345678910111213141516import socketHOST = '192.168.123.99'PORT = 10000data_on = "FE 05 00 01 FF 00 C9 F5"data_off = "FE 05 00 01 00 00 88 05"data_lst = data.split(' ')Modbus_16 = ""for i in data_lst: x2 = int(i, 16) Modbus_16 = Modbus_16 + chr(x2)s = socket.socket()s.connect((HOST, PORT))s.send(Modbus_16)
其中 data_on和data_off是开断 ...
基于python的SMMS命令上上传工具
背景:
由于经常写markdown,需要载入的图片比较多
图片存放的方式有两种:本地和图床。放在本地有很强的私密性,但是缺点是:不同设备上编辑或不同的编辑器中编辑文档时,会遇到图片库路径的问题,每次设置都要设置还挺麻烦的。
图床就为了解决这个问题:只要上传到图床,拿到固定的url,就可以无需关心图片的存放路径,在任意的设备和文档中引用,非常方便。并且如果直接用markdown发布博客,不仅能节省上传图片的步骤,还能减轻服务器图片浏览的负载。那图床的缺点就是:
私密性,任何人只要拿到url就可以看到图片,所以没有私密性可言。
稳定性,如果云端一旦倒了,或者被墙那么对用户来说是个很大的灾难,所以除了备份好数据,选择可靠的图床也是很重要的。
我选用的图床是SM.MS,最早我是在v2ex看到,后来在很多网站和平台推荐,很好用也很稳定,支持多种url格式输出,国内有CDN加速,加载速度比较快。
但是由于没有客户端,每次打开网页上传比较麻烦,而且如果二次添加图片的话结果会被追加到最后,容易乱。于是我就想找一个客户端,能轻松调用api,实现快速的图片上传。
我找到一些第三方工具:
PicGo ...
Win10下GTX750ti安装dlib GPU版
背景:由于需要在python3的环境下用dlib识别人脸,但是cpu算力太低,所以尝试使用GPU增加图像处理的速度,提升效率。网上有很多dlib装GPU版的教程,但是比较零碎,有些具体的细节也不完全一样,写一下我安装的过程。
准备环境:
1.Win10
2.GTX75Ti
1 安装 Visual Studio 2015 update3文件大小 7.22G,下载地址:
http://download.microsoft.com/download/8/4/3/843ec655-1b67-46c3-a7a4-10a1159cfa84/vs2015.3.ent_enu.iso
下载完成后,点击安装,安装整个过程大概需要花费1个小时。安装前需要把别的版本的Visual Studio卸载,否则报错。
Visual Studio 2015 update3 是在安装cuda所需要的环境,但是网上和cuda说Visual Studio 2017也是可以的,有兴趣的同学可以自行尝试。我自己测试过Visual Studio 2019,失败了。
2 安装cuda打开 NVIDIA 控制面板 > ...
Python制作RSS阅读源
背景:作为一个RSS的爱好者,一直在尝试用各种方法烧制feed。最早是feed43,还尝试过huginn,到近期很火的RSSHub,尽管他们的评价都非常的高,但是都用各自的缺点。本文先粗略比较以上三种方式的优缺点,再说明用python制作rss阅读源的详细过程。
1.feed43(已被墙)
feed43学习成本最低,无需自己搭建平台,但是免费版本是6小时更新一次源而且只能抓取文章的标题和时间,无法显示内容,虽然可以通过https://fivefilters.org二次显示内容,但同样有诸多限制,很难满足需求。
2.huginn
在各个网站上被称为RSS烧录神器,而且在github上21k的星标https://github.com/huginn/huginn,但是实测其爬虫的功能很一般。你需要将他部署在vps上,(我部署过三次,成功过两次,两次都是用docker),部署成功后进入web控制台界面,添加agent,就可以运作了。界面和操作feed43差不多,但是功能更为强大,可以自定义抓取和更新时间,还可以嵌套使用获取全文。但是其获取内容是依靠的xpath和css获取,谷歌浏览器有一款xp ...
python3下拥有opencv和dlib的树莓派镜像分享
在树莓派上安装opencv和dlib由于由于不能直接pip3 install ,所以要比windows和ubuntu上复杂的多,除了下载网速慢,编译的时候更是需要超长时间的等待。opencv的安装花了我一天的时间,dlib又花了我半天,非常痛苦,配置好环境之后立刻备份成镜像。现在,把镜像分享给大家,让准备上手人脸识别的同学免去繁琐的配置环境过程。
1 树莓派镜像原始镜像是树莓派官方镜像,版本为 2019-04-08-raspbian-stretch.img
整个img大小为10G,boot分区占48.3Mb,root分区占9.1G
2 修改部分2.1 用户账户用户:pi 密码:quake
用户:root 密码:无
2.2 镜像源已经将镜像源替换为清华的镜像源,可在以下命令查看:
sudo vim /etc/apt/sources.list
sudo vim /etc/apt/sources.list.d/raspi.list
3 已经安装的py3第三方库
第三方库
版本
cv2
3.4.0
dlib
19.17.0
numpy
1.16.4
mat ...