TypeScriptとOpenCV.jsを使った暗記シートWebアプリ
- 画像の色分離処理: 画像から特定の色を抽出して非表示化
- スポイトツール: 画像上の任意の色を選択して非表示にできる
- 複数色選択: 複数の色を同時に選択可能
- 閾値調整: 色の範囲と最小サイズを調整可能
- HSV色空間での処理: RGB→HSV変換により正確な色検出
- ドラッグ式比較表示: 十字ハンドルをドラッグして元画像と加工後を切り替え表示
- 複数画像対応: ディレクトリ選択で複数の画像を一括処理
- Node.js (v16以上推奨)
- npm
# 依存関係をインストール
npm installnpm run devブラウザが自動的に開き、http://localhost:3000 でアプリケーションが起動します。
npm run buildビルドされたファイルは dist/ ディレクトリに出力されます。
ビルド後のアプリケーションをプレビューするには:
npm run preview- 画像を選択: 「画像ファイルを選択」から画像をアップロード(複数選択・ディレクトリ選択可能)
- スポイトを有効化: 「スポイトで色を選択」ボタンをクリック
- 色を選択: 画像上の非表示にしたい色(例:赤シート)をクリック
- 閾値調整: 「色の範囲」スライダーで似た色の検出範囲を調整
- ノイズ除去: 「最小サイズ」スライダーで小さなノイズを除外
- 表示切り替え: 十字ハンドルをドラッグして元画像と加工後を比較
- 左上と右下:元画像
- 右上と左下:加工後画像
- 複数色選択: 手順2-3を繰り返して複数の色を選択可能
- TypeScript: 型安全な開発
- Vite: 高速な開発サーバーとビルドツール
- OpenCV.js: 画像処理ライブラリ
- HTML5 Canvas: 画像の描画と処理
Memorize-Sheet/
├── src/
│ ├── main.ts # エントリーポイント
│ ├── imageProcessor.ts # 画像処理クラス
│ ├── uiController.ts # UIコントロールクラス
│ ├── opencv.d.ts # OpenCV.js型定義
│ └── style.css # スタイルシート
├── index.html # HTMLエントリー
├── package.json # 依存関係
├── tsconfig.json # TypeScript設定
└── vite.config.ts # Vite設定