gnthibault/siril
GitHub: gnthibault/siril
SIRIL 是一款专为天文观测设计的图像处理工具,通过堆叠和降噪技术有效提升图像质量。
Stars: 69 | Forks: 12
# SIRIL
## 概述
SIRIL 是一款天文图像处理工具。
它专为天文观测中降低图像噪声、提升多次拍摄图像信噪比的需求而设计。
SIRIL 可自动或手动对齐、堆叠并增强来自多种文件格式的图像,
甚至支持图像序列文件(影片与SER文件)。
## 环境要求
编译需要以下工具:
* **meson**
* **ninja**
* **cmake**
必备构建依赖项:
* **GTK+ 3**(≥ 3.20)作为GUI工具包
* **json-glib-1.0**(≥ 1.2.6)作为GUI工具包
* **cfitsio** 用于FITS图像读写
* **fftw3** 用于傅里叶变换
* **GSL**(GNU科学库)用于点扩散函数实现、直方图计算与背景提取
* **libconfig**(≥ 1.4)用于结构化配置文件
* **C++编译器** 用于OpenCV代码与AVI导出模块
* **libopencv** 用于多种图像变换算法(≥ 4.4.0)
* **exiv2** 用于管理图像元数据
SIRIL内部处理FITS文件,但可通过控制窗口的转换选项卡将其他格式作为输入进行转换。部分格式(如BMP、PPM、SER)可内部处理,其余格式需依赖下述外部库或程序。所有库需在编译时存在,否则相关功能将不被包含:
* **libraw** 用于DSLR RAW文件导入
* **libffms2** 用于影片导入(支持FFmpeg兼容的所有格式)
* **libtiff**(≥ 4)用于TIFF格式支持
* **libjpeg** 或兼容库(如libjpeg-turbo)用于JPEG格式支持
* **libheif** 用于HEIF格式文件导入
* **libpng**(≥ 1.6)用于PNG格式支持
* **libavformat**、**libavutil**(≥ 55.20)、**libavcodec**、**libswscale** 与 **libswresample** 用于AVI导出(通常由FFmpeg提供)
* **libcurl** 用于网络交互(GNU/Linux系统非必需,macOS和Windows平台因GIO兼容问题必须安装)
* **wcslib** 用于部分天体测量工具
* **criterion** 用于单元测试
* **gnuplot** 用于测光图表输出
上述所有库和程序在多数Linux发行版及自由系统中均可获取,
可能例外的是ffms2——其普及度较低,可能需要自行编译。
## 脚本功能
SIRIL支持通过图形化命令行、包含命令序列的脚本文件或命名管道执行命令。
支持命令的列表详见[此处](https://free-astro.org/index.php?title=Siril:Commands)。建议使用 **siril-cli** 二进制文件,
因其无需X服务器支持。
开发者与高级用户已创建部分通用脚本,随源代码及安装包一同提供。当脚本存放于默认目录或用户设置的自定义目录时,
将显示在主窗口顶部菜单中。更多脚本信息及可用脚本列表请参阅[此页面](https://free-astro.org/index.php?title=Siril:scripts)。
命名管道仅在非图形化模式下使用SIRIL且程序命令行包含 `-p` 参数时启用。
## 源码获取
可从官网发布存档页面获取SIRIL源码,或通过Git获取最新版本:
```
git clone https://gitlab.com/free-astro/siril.git
```
目前部分算法采用子模块形式,需执行以下命令:
```
cd siril
git submodule sync --recursive
git submodule update --init --recursive
```
## GNU/Linux系统构建指南
现采用meson构建系统,较autotools更快速现代。
但meson构建仍处于实验阶段,欢迎提交错误报告。
执行以下命令进行构建:
```
meson --buildtype release _build
ninja -C _build
sudo ninja -C _build install
```
更新SIRIL时执行:
```
git pull --recurse-submodules
sudo ninja -C _build install
```
请注意,Debian系统维护有SIRIL稳定版二进制包。
Ubuntu和Linux Mint用户可使用SIRIL作者维护的PPA软件源:
**ppa:lock042/siril**。
其他可用软件包请查阅当前版本的[下载页面](https://free-astro.org/index.php?title=Siril:releases)。
## macOS系统构建指南
官网提供[dmg安装包](https://www.siril.org/download/),
也可通过Homebrew从源码安装:
```
brew install siril
```
## Microsoft Windows系统说明
SIRIL自0.9.8版起支持Windows系统,提供两种格式二进制文件:
* 安装程序
* 压缩包(ZIP文件)
也可通过MSYS2自行从源码构建,具体说明见[此处](https://free-astro.org/index.php?title=Siril:install#Installing_on_Windows)。
## SIRIL翻译指南
翻译系统基于GTK+软件通用的[intltool](https://www.freedesktop.org/wiki/Software/intltool/),
配合[poedit](https://poedit.net/)编辑器使用。
获取SIRIL源码后,在siril目录运行 **meson**(如未执行),然后运行:
```
ninja siril-pot -C _build
```
安装poedit并打开po目录下的 **siril.pot** 文件开始新翻译。
逐项翻译英文内容。完成后或需暂停时,
将生成的.po文件发送给我们,后续版本源码与安装包将包含该翻译。
如需翻译现有语言版本,运行:
```
ninja siril-update-po -C _build
```
更新po文件并使用poedit编辑。
## SIRIL FITS图像格式说明
[灵活图像传输系统(FITS)](https://en.wikipedia.org/wiki/FITS)是一种开放标准,
定义了用于科学及其他图像存储、传输与处理的数字文件格式。
FITS是天文学中最常用的数字文件格式。
由于FITS是容器格式且未规定数据顺序与尺寸,有必要在特定场景下统一规范。
当前SIRIL使用每通道32位浮点值(TFLOAT),图像按通道顺序从下到上、从左到右存储。
所有通过SIRIL导入、转换或导出的文件均采用此FITS格式,
序列文件(如SER与影片)除外——此类文件从原始格式读取并实时转换。
建议将影片转换为SER格式再进行处理,因其不支持多数并行操作。
## 图像序列文件说明
相比通用影片容器,SIRIL强烈推荐使用SER序列——后者不适合天文数据且不同播放器读取方式可能不同。
SIRIL可将FFMS2支持的所有影片格式(涵盖绝大多数FFmpeg格式)转换为SER,甚至支持任意图像序列转SER。
SIRIL兼容SER v3格式,详见[此页面](https://free-astro.org/index.php/SER)。
## 实用链接
* [项目主页](https://www.siril.org)
* [文档](https://free-astro.org/siril_doc-en)
* [论坛](https://discuss.pixls.us/c/software/siril)
* [版本发布与下载](https://free-astro.org/index.php?title=Siril:releases)
* [报告问题](https://gitlab.com/free-astro/siril/issues)
* [支持命令列表](https://free-astro.org/index.php?title=Siril:Commands)
标签:C++ 开发, FFT 傅里叶变换, FITS 文件处理, GauPlus, GSL 科学计算, GTK+ 界面, GUI 工具, OpenCV 库, 信号增强, 单位测试, 噪声抑制, 图像元数据管理, 图像增强, 图像处理, 图像对齐, 图像算法, 堆叠, 多格式支持, 天文图像处理, 天文学, 天文学软件, 客户端加密, 文件格式转换, 科学计算, 网络交互