Version 1.0.9
Terminal から以下のコマンドでインストール・起動して下さい。
pip install trainscanner
trainscanner開発中の版を試してみたい場合はこちら。
pip install 'git+https://github.com/vitroid/TrainScanner.git#beta'
手持ち撮影でもきれいにつながるように、trainscannerで列車をつなぐ前に、手ぶれをとりのぞくツールです。
antishakeムービーが画像ファイルに展開されるので、それなりのディスク容量が必要です。生成した画像ファイルの束は、ディレクトリごとtrainscannerで読みこめます。
TrainScanner で作成した画像は巨大でしかも長大なので、そのままでは取り扱いにくいため、見易いようにいろんな変換プログラムを準備しました。
ts_converterpynojector をインストールすると、ts_converter に機能が追加されます。
pip install https://github.com/vitroid/pynojector.git
長い画像を、定型用紙に入るように「円筒に巻く」プログラムです。こちらは、画像がななめにならない代わり、円筒をのりづけする時にずらす必要があります。
rectify longimage.png
usage: rect.py [-h] [--output OUTPUT] [--rows ROWS] [--overlap OVERLAP]
[--head-right] [--thumbnail] [--width WIDTH]
image_path
Fold a train image into a stack of images
positional arguments:
image_path Path of the input image file
options:
-h, --help show this help message and exit
--output OUTPUT, -o OUTPUT
Path of the output file
--rows ROWS, -r ROWS Number of rows-- 1:25
--overlap OVERLAP, -l OVERLAP
Overlap rate (percent)-- 0:100
--head-right, -R The train heads to the right.
--thumbnail, -t Add a thumbnail image (Hans Ruijter's style)
--width WIDTH, -W WIDTH
Width (pixels, 0 for original image size)-- 0:10000
スクロール動画を生成します。
movify longimage.pngusage: movie.py [-h] [--output OUTPUT] [--duration DURATION] [--height HEIGHT]
[--width WIDTH] [--head-right] [--fps FPS] [--crf CRF] [--png]
[--alternating] [--accel] [--encoder ENCODER] [--thumbnail]
[--imageseq]
image_path
Make a movie from a train image
positional arguments:
image_path Path of the input image file
options:
-h, --help show this help message and exit
--output OUTPUT, -o OUTPUT
Path of the output file
--duration DURATION, -d DURATION
Duration of the movie (seconds)-- 10:1000
--height HEIGHT, -H HEIGHT
Height of the movie-- 100:4096
--width WIDTH, -W WIDTH
Width of the movie-- 100:4096
--head-right, -R The train heads to the right.
--fps FPS, -r FPS Frame rate-- 1:120
--crf CRF, -c CRF CRF (Constant Rate Factor) -- 16:30
--png, -p Intermediate files are png
--alternating, -a Go back and forth
--accel, -A Acceleration
--encoder ENCODER, -e ENCODER
mp4 encoder
--thumbnail, -t Add a thumbnail (Yamako style)
--imageseq, -i Make a sequence of images
TrainScanner.appは、pass1.pyとstitch.pyという 2 つのプログラムを呼びだすためのラッパーで、これらのプログラムは単独でも動作します。列車の移動量の検出がうまくいかなかった場合など、手直ししたい場合には、tsconfファイルとtsposファイルを手で修正して、より良い結果を得ることもできます。
それぞれのコマンドには多数のオプションがあります。-hオプションを付けて、使い方を見て下さい。ほとんどのオプションはtrainscanner_gui.py (アプリケーション名はTrainScanner.app, TrainScanner.exe)上で指定できますので、グラフィック表示ができる環境であれば、GUI を使うことをお勧めします。ただし、tsconfファイルとtsposファイルを手で修正した場合はstitch.pyを使いたくなるかもしれません。
ビデオを読みこみ、列車の移動を検出し、移動量を.tsposという名前のファイルに出力します。
trainscanner_pass1 video.mov
pass1.py の出力に従い、映像を連結して 1 枚の大きな写真を作ります。通常は、以下のように、pass1.py が出力した.tsconfファイルを読みこんで使用します。
trainscanner_stitch @video.mov.12345.tsconf
@マークは、コマンドラインオプションをファイルからインクルードすることを意味します。この後ろに、さらにオプションを追加することで、スリット位置やフレーム間のぼかし幅を調節できます。例えば、あとからスリット位置と幅をそれぞれ 220 と 1.5 に変えたい場合は、
trainscanner_stitch @video.mov.12345.tsconf -s 220 -w 1.5
のようにします。GUI を使う場合には、設定を変える度に pass1.py も実行せざるをえませんが、stitch.py を直接使えば、よりすばやく結果を得られます。
trainscanner_pass1とtrainscanner_stitchを統合し、オプションを対話的に設定できる UI を備えた TrainScanner の本体です。Windows の exe ファイルや macOS の App はこれをパッケージ化したものです。
- c0e9109 ImageRectをtrainscanner2から移管。antishakeはまだ動かない。
- b630942 trainscanner2用の関数を追加。
- d830bf7 MatchScoreをMatchRectに変更。
- 42bdae4 Update pre-commit hook and enhance image processing in StitcherUI
- 🎉 メジャーバージョンアップ: TrainScanner 1.0.0 リリース
- デバッグログ出力の問題を修正:
--debugオプションが意図せず.tsconfファイルに保存される問題を解決 trainscanner.trainscannerからtrainscanner.image.Transformationへの移行- ファイルエンコーディングを UTF-8 に明示的に指定
- Transformation クラスの独立したモジュール化
pass1.py:--debugオプションがaction="store_true"の適切な処理を追加stitch.py: ファイル読み込み時のエンコーディング指定- crop_image 関数: GeoTIFF メタデータ削除による Preview 互換性向上
- 38ae12b Update CHANGELOG for version 0.36.1 and modify dependencies
- bf5a8ef 速度予測以前のフレームの情報から、速度を逆工程で推論するアルゴリズム。
- 573e0b3 Refactor logging and frame handling in TrainScanner modules
- 2c639bb Refactor video frame handling and improve logging in Pass1 and Stitcher classes
- 50f1579 Update CHANGELOG and README for version 0.35.10
- bb57e72 Update CHANGELOG and refactor imports to use tiffeditor
- f6b4a3a Update .gitignore to include additional image file patterns
- 2120563 stitch.py を rasterio 対応にした。まだ、scale がちゃんとできていないかも。また、GUI との連携も確認していない。
- 4d278c3 -
- d779b86 -
- 3ccd89d Merge master branch into PyQt5compat2
- d56db47 Update TiledImage dependency to version 0.4 and enhance Makefile to automate image generation from .mov files.
- 193f5e8 Merge master: Resolve conflicts in pyproject.toml, keep PyQt5 and Pillow dependencies
- b49bc95 Qt5 化
- 9f1402c 逆順動画作成
- 588497c 差分表現の改良
- 27a8c46 subpixel 対応
- eb4bd1e PyQt5 対応
- 10dc8c7 旧 MacOS との互換性のため、PyQt5 に戻す。
- 93d238c Refactor subpixel matching and motion detection logic to support variable fit widths and improve accuracy. Updated
subpixel_matchto use CCOEFF method and adjusted handling of maximum acceleration inmotionfunction. Enhanced parameter handling for improved flexibility in image processing.
- 588497c 差分表現の改良
- 27a8c46 subpixel 対応
- eb4bd1e PyQt5 対応
- 10dc8c7 旧 MacOS との互換性のため、PyQt5 に戻す。
- 93d238c Refactor subpixel matching and motion detection logic to support variable fit widths and improve accuracy. Updated
subpixel_matchto use CCOEFF method and adjusted handling of maximum acceleration inmotionfunction. Enhanced parameter handling for improved flexibility in image processing.
- 27a8c46 subpixel 対応
- eb4bd1e PyQt5 対応
- 10dc8c7 旧 MacOS との互換性のため、PyQt5 に戻す。
- 93d238c Refactor subpixel matching and motion detection logic to support variable fit widths and improve accuracy. Updated
subpixel_matchto use CCOEFF method and adjusted handling of maximum acceleration inmotionfunction. Enhanced parameter handling for improved flexibility in image processing.
- eb4bd1e PyQt5 対応
- 10dc8c7 旧 MacOS との互換性のため、PyQt5 に戻す。
- 93d238c Refactor subpixel matching and motion detection logic to support variable fit widths and improve accuracy. Updated
subpixel_matchto use CCOEFF method and adjusted handling of maximum acceleration inmotionfunction. Enhanced parameter handling for improved flexibility in image processing.
- 10dc8c7 旧 MacOS との互換性のため、PyQt5 に戻す。
- 93d238c Refactor subpixel matching and motion detection logic to support variable fit widths and improve accuracy. Updated
subpixel_matchto use CCOEFF method and adjusted handling of maximum acceleration inmotionfunction. Enhanced parameter handling for improved flexibility in image processing.
- a7adc6b CHANGELOG.md の自動更新機能を削除し、手動でのコミットを推奨するように変更しました。
- サブピクセルマッチング処理の fit_width パラメータを追加
- オプションのヘルプテキストのフォーマットを改善
- 範囲指定をカンマからコロンに修正
- オプションの値の範囲を取得するロジックを改善
- spec を使用して値の選択肢を提供する機能を追加
- motion 関数のサブピクセルマッチング処理を改善
- maxaccel が 1 の場合の値変更ロジックを実装
- Pass1 クラスの動作判定ロジックを改善
- coldstart 状態での動きの受け入れ処理を追加
- guess_mode を in_action に置き換え
- 動きが antishake 水準を超えた際の処理を整理
- サブピクセル処理が失敗しても破綻しないように調整
- Stitcher クラス内の tspos ファイルの読み込み処理で列のデータ型を整数から浮動小数点数に変更
- shake_reduction.py のアンチシェイク処理を改善
- サブピクセルシフトの計算を追加
- 最大シフト量を 10 に変更
- 画像の平行移動と回転処理を最適化
- GUI の MatcherUI クラスに成功フラグを追加
- 標準化処理を追加し、画像の差分計算を最適化
- preprocess.py から不要なデバッグ出力を削除
- バージョンを 0.27.1 から 0.28.1 に更新
- README.md に新しいバージョン番号を反映
- GUI の MatcherUI クラスに成功フラグを追加
- preprocess.py から不要なデバッグ出力を削除
- motion 関数のサブピクセルマッチング処理を改善
- 標準化処理を追加
- diffImage 関数でも標準化を適用
- 画像の差分計算を最適化
- subpixel_match 関数にサブピクセルオプションを追加
- サブピクセル処理が失敗しても破綻しないように調整
- Stitcher クラス内の tspos ファイルの読み込み処理で列のデータ型を整数から浮動小数点数に変更
- 計算精度が向上
- shake_reduction.py のアンチシェイク処理を改善
- サブピクセルシフトの計算を追加
- 最大シフト量を 10 に変更
- 画像の平行移動と回転処理を最適化
- 画像処理の精度が向上
- 動画生成処理に進捗通知機能を追加
- make_movie 関数に進捗コールバックを実装
- ffmpeg の実行中に進捗を表示
- GUI 側でプログレスバーを表示
- 進捗を更新する処理を追加
- converter_control_widget 関数を追加
- オプションの表示と制御を改善
- movie.py の make_movie 関数をリファクタリング
- ffmpeg の呼び出しを新しい video モジュールに移動
- フレームのファイル名生成を簡素化
- 新たに ffmpeg.py を追加
- ffmpeg コマンドの実行を管理する関数を実装
- ffmpeg のインストール状況に応じて movie オプションの制御を追加
- ffmpeg が未インストールの場合、CRF とエンコーダーオプションを無効化
- imageseq オプションを強制的にチェック状態で無効化
- 動画ファイル選択ダイアログに.mkv 形式を追加
- 対応するファイル形式を拡張
- 動画ファイルの読み込み処理を video_loader_factory に変更
- コードの一貫性を向上
- cv2toQImage 関数を trainscanner.widget モジュールからインポート
- EditorGUI および AsyncImageLoader クラス内での使用を更新
- 不要な cv2toQImage 関数の定義を削除
- コードの重複を排除し、可読性を向上
- shake_reduction.py の標準化関数を修正
- データ型を float32 に変更
- アンチシェイク処理内での焦点管理を改善
- マッチエリアの処理を最適化
- 画像処理の精度と効率が向上
- 手ぶれ補正ツール「antishake」を追加
- README に手ぶれ補正の説明を追加
- ショートカット機能を実装
- ウィンドウを閉じる操作を簡素化
- 動画作成関数の引数を変更
- ビットレートから CRF(可変ビットレート)に切り替え
- ヘルプメッセージを更新
- CRF のデフォルト値を設定
- ヘルプオーバーレイをヘルプダイアログに名称変更
- 操作方法の説明を改善
- 不要なコードを削除
- ダイアログの表示位置を調整する機能を削除
- 画像選択ウィンドウにドラッグ&ドロップ機能を追加
- ファイルをドロップした際に動画を処理する機能を実装
- ヘルプオーバーレイを追加
- 操作方法を説明するテキストを表示する機能を実装
- 動画処理の際にヘルプを初回のみ表示
- 画像選択ウィンドウに処理開始ボタンを追加
- ボタンのスタイルを設定
- 画像の表示サイズを調整
- 長方形の座標制限を改善
- キーボード操作で長方形を全て消去できる機能を追加
- 手ぶれ補正機能のデバッグ用に、マッチエリアの表示を一時的に無効化
- 手ぶれ補正機能の改善:新たにパディング計算を追加
- マッチエリアの比較方法を修正
- マッチ領域が画面外にはみでても動くようになりました
- 描画される長方形の線の太さとテキストのスケールを変更
- 出力ファイル名をコンソールに表示するように修正
- ファイル配置を変更
- 新しい画像選択ウィンドウを追加
- 動画のフレームを表示・選択できる機能を実装
- 選択した領域に基づいて動画の手ぶれ補正を行うための処理を追加
- 日本語訳を追加
- i18n 関数を使用して、GUI 内のテキストを国際化
- 翻訳機能が強化され、ユーザーインターフェースの多言語対応が向上
- Qt の i18n に依存するのをやめ、自前の i18n 関数を準備
- linguist 互換とする
- コマンドライン引数のパーサーを各コンバーターファイルに追加
- 翻訳機能を実装
- GUI に関連するオプションの説明を日本語と英語で整備
- 各種オプションのデフォルト値やヘルプメッセージを改善
- パラメータの取得方法を改善
- スライダーの実装を強化
- QFloatSlider と QLogSlider を追加
- GUI のオプションを動的に取得できるように
- 動画の長さにデフォルト値を設定
- エラーハンドリングを強化
- オプションの GUI 化は 8 割がた完成
- GUI の自動生成(途上)
- コマンドライン引数のパーサーを各コンバーターファイルに追加
- クリックライブラリから argparse ライブラリに移行
- 引数の処理が統一され、可読性が向上
- SettingsGUI のタブウィジェットのラベルを辞書形式に変更
- ffmpeg が未インストールの場合にタブを無効化する処理を追加
- 未使用のプログレスバー関連のコードを削除
- SettingsGUI にタブウィジェットを追加
- 画像処理オプションを整理
- 未使用のラジオボタンと関連コードをコメントアウト
- バージョンを 0.23.0 から 0.24.0 に更新
- README.md の内容を修正
- VideoLoader 関数をプラットフォームに応じて video_cv2 モジュールを直接呼び出すように修正
- 未使用のインポートを削除
- サポートされていないプラットフォームに対するエラーハンドリングを追加
- バージョン情報を削除
- SettingsGUI に「Ctrl+W」と「Ctrl+Q」のショートカットを追加
- ウィンドウを閉じたりアプリケーションを終了したりする操作が簡単に
- 画像処理の最適化を行い、OpenCV から QImage への変換処理を改善
- スリット幅の計算ロジックを修正
- 画像の中央を切り出す処理を追加
- 未使用のインポートを削除し、コードの可読性を向上
- キャンバスの境界計算を改善
- 画像追加時のキャンバスサイズ変更処理を最適化
- 未使用のフラグを削除し、コードの可読性を向上
- Editor ウィンドウのサイズを変えられるようにした
- Stitch ボタンを Editor ウィンドウに移設
- AsyncImageLoader クラスにエラーハンドリングを追加
- ビデオファイルの読み込みエラー時にシグナルを発信
- EditorGUI クラスでエラーメッセージを表示する機能を実装
- やっと EditorGUI のサイズが可変になった
- 未使用のメソッドを削除
- focus の検証メソッドを追加
- deformation_image_layout メソッド内でのレイアウト設定を修正
- 画像のスケーリング処理をアスペクト比を維持するように改善
- FrameInfo データクラスを追加
- AsyncImageLoader クラスでのフレーム管理を改善
- フレームの間引き処理を実装
- GUI の更新頻度を調整
- MyLabel クラスのマウスイベント処理を修正
- focus の更新を行うように
- ショートカット機能を追加
- 各 GUI クラスにおいて「Ctrl+W」でウィンドウを閉じることができるように
- stitch_gui.py の Renderer クラスで、処理中に stitcher.after()の呼び出しをコメントアウト
- 処理の中断時の動作を改善
- バージョンを 0.20.0 から 0.22.0 に更新
- README.md のバージョン表記を修正
- tspos に対して先頭および末尾のフレームを追加するメソッドを実装
- フレーム情報の管理を改善
- tspos の初期化方法を修正
- 出力形式を変更
- bitrate の小さい動画を読みこむと末尾を読まない問題を解決
- AsyncImageLoader の最大フレーム数を 256 から 128 に変更
- SettingsGUI の加速度スライダーの範囲を 1 から 15 から 1 から 100 に拡張
- Stitcher の画像が巨大になる問題を修正
- AsyncImageLoader クラスにフレーム情報を管理する FrameInfo データクラスを追加
- フレームの間引き処理を改善
- updateTimeLine メソッドを修正
- フレーム情報を適切に受け取るように
- エラーハンドリングを強化
- ログ出力を追加
- pass1_gui.py の cv2toQImage 関数を修正
- OpenCV を使用して色の順序を BGR から RGB に変換する処理を追加
- バージョンを 0.19.10 に更新
- README.md のバージョン表記を修正
- stitch_gui の画面表示が異常に遅くなる問題を修正
- バージョンを 0.19.9 に更新
- README.md のバージョン表記を修正
- pass1_gui.py の cv2toQImage 関数を修正
- 色の順序を反転させる処理を簡素化
- Worker クラスの finished シグナルに成功フラグを追加
- MatcherUI クラスの finishIt メソッドを更新
- 成功状態を保持するように
- pass1.py でモーションが検出されなかった場合のエラーログを追加
- trainscanner_gui.py で MatcherUI の成功状態を確認する条件を修正
- 0.19.8 @yamakox さんの PR をマージして deploy
- バージョンを 0.19.7 に更新
- README.md に mp4 エンコーダーオプションを追加
- 依存関係に pillow を追加
- Windows でファイルのドラッグ&ドロップが正常に動作しない不具合を修正
- ffmpeg のコマンドラインの output 引数を修正
- ビデオエンコーダを指定するオプションを追加
- Windows では symlink が作れないらしいので、hardlink に変更
- StitcherUI の初期化時にパラメータを出力
- プレビュー比率の計算を改善
- 幅と高さの取得を整理
- preprocessor 部の UI を別ファイルに分ける
- draw_focus_area および draw_slit_position 関数のドキュメンテーションを修正
- diffImage 関数の引数を簡略化
- focus および slitpos の描画をコメントアウト
- EditorUI のウィンドウの中の要素を整理
- バージョンを 0.19.5 に更新
- README.md のバージョン表記を修正
- スライダーの最小高さ設定をコメントアウト
- レイアウトの柔軟性を向上
- バージョンを 0.19.4 に更新
- README.md のバージョン表記を修正
- trainscannergui.py 内の execメソッドを exec メソッドに変更
- app.exec_()を修正
- Refactor GUI components in trainscanner_gui.py to improve layout flexibility and responsiveness
- Changed fixed sizes to minimum sizes for various elements
- Updated method calls for compatibility
- Added resize event handling
- Introduced a new binary file init.pyc
- Update ffmpeg command to use platform-specific codec for video encoding in movie2.py and scroll.py
- GUI の言語設定取得方法を改善
- 環境変数が未設定の場合に QLocale を使用するように修正
- movie2.py で viewport_height のチェックを追加
- バージョンを 0.19.0 に更新
- README.md と temp_README.md に開発中の版を試すためのインストール方法を追加
- 保存前に crop できるようになった
- Makefile にタグ付け機能を追加
- デプロイターゲットを更新
- ビルド後に自動的にバージョンタグを作成できるように
- バージョンを 0.18.0 に更新
- GUI の翻訳機能を強化
- 映画ファイルを開く際のメッセージを改善
- フランス語の翻訳ファイルを追加
- 言語設定の取得方法を環境変数に基づいて修正
- Makefile と翻訳ファイルを更新
- converter_gui.py の参照を gui.py に変更
- trainscanner_ja.ts 内のメッセージの整形を行い、翻訳の一貫性を向上
- pyproject.toml に tqdm ライブラリを追加
- movie2.py の make_movie 関数で進捗バーを実装
- ビットレートのデフォルト値を None に変更
- ffmpeg コマンドの引数を修正
- pyproject.toml の ts_converter エントリを更新
- converter_gui.py を新規作成
- GUI のコア機能と画像処理を実装
- ユーザーが画像をドラッグ&ドロップできる機能
- 処理オプションを選択するためのラジオボタンを追加
- Makefile に新しいターゲットを追加
- Markdown ファイルを生成するための replacer.py スクリプトを新規作成
- pyproject.toml のバージョンを 0.17.0 に更新
- movify 関数の実装を修正
- README.md を更新
- 各種コンバータの使用方法を明確に
- CHANGELOG.md を新規作成
- バージョン 0.16.1 から 0.1.0 までの変更履歴を追加
- 新しい scroll.py を追加
- 横スクロール動画を生成する機能を実装
- 既存の movie2.py の make_movie 関数に新しい引数を追加
- 動画生成の柔軟性を向上
- converter_gui.py での動画生成処理を scroll モジュールに移行
- ExtensibleCanvasWidget にドラッグ機能を追加
- 描画完了時の矩形表示を実装
- ボタンのテキストを「Crop + Finish」に変更
- tsconf ができない問題を修正
- VideoLoader クラスの next メソッドを修正
- フレームの取得方法をディレクトリ内の PNG ファイルのソートされたリストから取得するように変更
- ファイル名がソート可能であれば自由に命名できるように
- video ドライバーを別フォルダーに移転
- image の束のはいったディレクトリを D&D すると、ムービー同様に読む機能を追加
- ただし tsconf 等のファイル出力が動作していない
- 新しい画像選択ウィンドウを追加
- 動画のフレームを表示・選択できる機能を実装
- 選択した領域に基づいて動画の手ぶれ補正を行うための処理を追加
- 日本語訳を追加
- i18n 関数を使用して、GUI 内のテキストを国際化
- 翻訳機能が強化され、ユーザーインターフェースの多言語対応が向上
- Qt の i18n に依存するのをやめ、自前の i18n 関数を準備
- linguist 互換とする
- バージョンを 0.18.0 に更新
- README.md の内容を修正
- コマンドライン引数のパーサーを各コンバーターファイルに追加
- 翻訳機能を実装
- GUI に関連するオプションの説明を日本語と英語で整備
- 各種オプションのデフォルト値やヘルプメッセージを改善
- パラメータの取得方法を改善
- スライダーの実装を強化
- QFloatSlider と QLogSlider を追加
- GUI のオプションを動的に取得できるように
- 動画の長さにデフォルト値を設定
- エラーハンドリングを強化
- オプションの GUI 化は 8 割がた完成
- GUI の自動生成(途上)
- コマンドライン引数のパーサーを各コンバーターファイルに追加
- クリックライブラリから argparse ライブラリに移行
- 引数の処理が統一され、可読性が向上
- SettingsGUI のタブウィジェットのラベルを辞書形式に変更
- ffmpeg が未インストールの場合にタブを無効化する処理を追加
- 未使用のプログレスバー関連のコードを削除
- SettingsGUI にタブウィジェットを追加
- 画像処理オプションを整理
- 未使用のラジオボタンと関連コードをコメントアウト
- VideoLoader 関数をプラットフォームに応じて video_cv2 モジュールを直接呼び出すように修正
- 未使用のインポートを削除
- サポートされていないプラットフォームに対するエラーハンドリングを追加
- バージョン情報を削除
- SettingsGUI に「Ctrl+W」と「Ctrl+Q」のショートカットを追加
- ウィンドウを閉じたりアプリケーションを終了したりする操作が簡単に
- 画像処理の最適化を行い、OpenCV から QImage への変換処理を改善
- スリット幅の計算ロジックを修正
- 画像の中央を切り出す処理を追加
- 未使用のインポートを削除し、コードの可読性を向上
- キャンバスの境界計算を改善
- 画像追加時のキャンバスサイズ変更処理を最適化
- 未使用のフラグを削除し、コードの可読性を向上
- Editor ウィンドウのサイズを変えられるようにした
- Stitch ボタンを Editor ウィンドウに移設
- AsyncImageLoader クラスにエラーハンドリングを追加
- ビデオファイルの読み込みエラー時にシグナルを発信
- EditorGUI クラスでエラーメッセージを表示する機能を実装
- やっと EditorGUI のサイズが可変になった
- 未使用のメソッドを削除
- focus の検証メソッドを追加
- deformation_image_layout メソッド内でのレイアウト設定を修正
- 画像のスケーリング処理をアスペクト比を維持するように改善
- FrameInfo データクラスを追加
- AsyncImageLoader クラスでのフレーム管理を改善
- フレームの間引き処理を実装
- GUI の更新頻度を調整
- MyLabel クラスのマウスイベント処理を修正
- focus の更新を行うように
- ショートカット機能を追加
- 各 GUI クラスにおいて「Ctrl+W」でウィンドウを閉じることができるように
- movify および movify2 のエントリを追加
- GUI に新しいラジオボタンを追加
- 横スクロール動画の生成機能を強化
- 画像処理のオプションに右端を先頭にする機能を追加
- 進捗バーの更新を改善
- ffmpeg の存在確認に基づいてボタンの有効/無効を制御するロジックを調整
- converter のパスを ts_conv から trainscanner.converter に変更
- 動画生成機能の高さ調整ロジックを改善
- Python の依存関係を 3.11 に変更
- ホームページの URL を追加
- Python の依存関係を 3.10 に変更
- Linux 環境でのビデオモジュールのインポートを修正
- scikit-video パッケージを追加
- qrangeslider.py でのイベント処理において、座標を整数に変換する修正
- tsconf ファイルを開くときに発生するエラーを修正
- Apple M1 対応の改善
- PyQt6 への移行
- パスに空白が含まれる場合のバグを修正
- コマンドラインオプションの更新
- Hansify コマンドを追加
- QRangeSlider の実装
- 後半の thumbnail が無視される問題を解決
- スライダーの高さを変更
- 矩形フォーマットの導入
- Python3 へのアップグレード
- Windows 対応の改善
- tsconf ファイルから設定を継承する機能
- ジェネレーターの簡略化
- アルファ版リリース
- チュートリアルの更新
- モーション検出エリア(フォーカスエリア)の指定機能
- スクロールバー付き GUI プロトタイプ
- 上下のクロップ機能
- Python2+OpenCV2 による完全な書き直し
- Python3 with OpenCV3; downloading HEAD of openCV3 takes VERY long time.
- Windows/Python3/OpenCV3/PyQt4/Anaconda
- failed to build exe on Windows?
- Flickr account for TrainScanner development: TrainScanner
