KASANEGI

LANGUAGE APP · KASANEGI

同じ漫画を、ふたつの言語で重ねて読む

kasanegi は、語学を学ぶ人のためのアプリです。同じ漫画の日本語版と英語版を、端末の中で頁ごとに重ねて表示します。丸いレンズを動かすと、その場所だけもう一方の言語で読めます。

頁の画像は端末の中だけで扱います。私たちのサーバに画像を送ることはありません。

『Pepper&Carrot』第 4 話の頁。日本語版の上を丸いレンズが動き、レンズの中だけ英語版の吹き出しが見えています。
David Revoy『Pepper&Carrot』第 4 話・CC BY 4.0

DEMO

ブラウザで試せます

デモでは、David Revoy さんが CC BY 4.0 で公開している『Pepper&Carrot』第 4 話の、公式の日本語版と英語版を重ねています。日本語版の上でポインタを動かすか、指でなぞってください。円の中に英語版の同じ場所が表示されます。

位置合わせは、このページを開いたブラウザの中で計算しています。2 つの版の頁から対応する点を探して、英語版を日本語版の形に合わせます。画像はどこにも送りません。

  • 動かすポインタ、指、矢印キーでレンズを動かせます。
  • 頁1・3・6 のボタンで頁を切り替えられます。
  • 大きさレンズの半径をつまみで変えられます。
  • 入れ替え上の版と下の版を入れ替えると、英語版の上に日本語版が見えます。
  • 自分の画像同じ頁の 2 つの言語版の画像を選ぶと、その 2 枚で試せます。

デモが外部から読み込むのは、位置合わせに使う OpenCV.js の 1 ファイルだけです。デモを単独のページで開く

HOW IT WORKS

重ねるまでの 3 つの手順

同じ漫画の言語版は、多くの場合、同じ原画から作られています。主に違うのは吹き出しの文字です。kasanegi はこの性質を使って、絵が一致する頁と場所を探します。

  1. 日本語版と英語版の頁を、絵が一致するものどうし線で結んだ図。表紙と付録は相手がありません。 日本語版 英語版 相手なし 相手なし

    1. 頁を照合します

    頁の並び順は前提にしません。英語版の各頁について、縮小した署名(64 ビット)が近い日本語版の頁を 8 つ選びます。その 8 頁に対して、絵の位置合わせを試します。成り立った組のうち、対応する点の多いものを採用します。表紙や付録のように片方にしかない頁は、相手なしのまま残します。

  2. 日本語版と少し傾いた英語版の頁を、絵の上の対応する点どうし線で結んだ図。吹き出しの文字の部分は照合に使いません。 日本語版 英語版

    2. 絵で位置を合わせます

    頁の中の特徴点(SIFT)を対応づけます。吹き出しの文字は版ごとに違うので、文字のような小さく暗い部分は照合に使いません。対応した点から、頁全体を写す射影変換を MAGSAC で求めます。写した頁の四隅の形、面積の比、点の散らばりに問題がないときだけ採用します。

  3. 日本語版の頁の上に丸いレンズがあり、レンズの中だけ英語版の吹き出しが見えている図。 レンズの中は 英語版 外は日本語版

    3. 円の中だけ見せます

    求めた変換で、もう一方の版を、読んでいる頁の形に写します。表示するのはレンズの円の中だけです。円の外は読んでいる版のままです。気になった吹き出しだけを、もう一方の言語で確かめられます。

PRODUCTS

プロダクト

01 · Python

頁合わせの核

2 つの言語版の頁を組み合わせて、絵の位置を合わせるプログラムです。Python と OpenCV で書いています。上の 3 つの手順のうち、照合と位置合わせを受け持ちます。

図は、核が自作の見本 2 枚から見つけた対応の一部です。淡い紅の部分は、文字のような小さく暗い部分として照合から外した場所です。

311
見本の組で残った対応点(MAGSAC の inlier)
0.13 px
対応点の誤差の中央値
4,734
Python の行数(19 ファイル)
左に日本語版、右に英語版の見本の頁。絵の上の対応する点どうしが線で結ばれています。吹き出しの文字の周りは淡い紅で塗られ、照合に使われていません。
頁合わせの核の出力。左が日本語版、右が英語版の見本(どちらも自作)です。線は、残った対応 311 本のうち 78 本です。

02 · PC

かさね読み - PC(円形ルーペ)

読む版と参照版の URL を入れて開くと、それぞれの頁の相手を自動で決めます。相手の頁を手で選ぶ操作はありません。読んでいる頁の上でカーソルを動かすと、円の中に相手の版の同じ場所が表示されます。

円の大きさと白黒表示は切り替えられます。頁はスクロールと番号の入力で移動できます。

47
正しい相手の頁へ自動で対応した頁
63 / 58
そのときの読む版と参照版の枚数
2026.09
完成した月
かさね読み - PC の画面。上に読む版と参照版の URL の欄があり、頁の上の円の中に英語版の吹き出しが表示されています。
画面の見本。自作の見本頁を表示しています。URL の欄は例です。

03 · Android

Android アプリ

スマホで読むためのアプリです。Kotlin で書いています。読む版と参照版の URL を入れて開始すると、一話の頁が照合されます。指でなぞった場所には、丸窓でもう一方の版が表示されます。前頁と次頁への移動と、2 つの版の入れ替えができます。

Android アプリは 2 つの実装で作りました。読書の機能を作り込んだ実装と、一話の画像をまとめて重ねる実装です。後者は、一話の 2 つの版(64 頁と 58 頁)から 60 組の頁を結びました。誤った組は 0 でした。見開きの頁は左右を別々に結ぶため、組の数が頁の数より多くなります。

22,898
読書の機能を作り込んだ実装の Kotlin の行数(134 ファイル)
25,970
同じ実装の単体試験と機器試験の行数
60
一話の画像をまとめて重ねる実装で結んだ頁の組(誤り 0)
Android アプリの画面。上に URL の欄が 2 つと、開始・前頁・次頁・入替のボタンがあり、頁の上の丸窓の中に英語版の吹き出しが表示されています。
画面の見本。アプリの画面構成(URL の欄、開始・前頁・次頁・入替、状態の表示、丸窓)を、自作の見本頁で再現しています。

RESULTS

実物で確かめた結果

出版されている漫画の 2 つの言語版で試した結果です。作品名と画像は権利者のものなので、このページには載せていません。

33組

頁合わせの核は、日本語版 193 枚の中から英語版 57 枚の相手を探して、33 組を結びました。誤った組は 0 でした。相手が見つからなかった頁は重ねていません(2026-10-05、全組を目視で確認)。

47頁

かさね読み - PC が、読む版 63 枚と参照版 58 枚から、47 頁を正しい相手の頁へ自動で対応させました。独立に行った目視の評価と照らし合わせています(2026-09-27)。

60組

Android アプリは、一話の 2 つの版から 60 組を結びました。誤った組は 0 でした。別の作品の組では 54 組で、誤りはやはり 0 でした(2026-10-07、全組を目視で確認)。

2 つの URL を入れると、一話全体が頁ごとに重なった状態で読めます。

PRIVACY

画像はサーバに置きません

漫画の画像は、作品の権利者のものです。kasanegi は、利用者が自分で開いた 2 つの版を重ねて表示するためだけに、画像を端末の中で扱います。

  • サーバ頁の画像を私たちのサーバに送ることはありません。サーバが画像を持つこともありません。
  • 端末Android アプリ(一話の画像をまとめて重ねる実装)は、画像を、重ねて表示するあいだだけ端末のメモリで扱います。
  • 保存この実装は画像をファイルとして保存しません。試験では、各回の終わりにアプリのキャッシュと表示用の領域を検査しています。2026-10-07 の 8 回の計測では、画像ファイルはどれも 0 件でした。
  • デモこのページのデモも、ブラウザの中だけで動きます。

BUILT WITH CLAUDE

Claude Code が担った部分

kasanegi の開発は Claude Code を軸に進めています。そのうち、次の部分は Claude Code が設計して書きました。

頁合わせの核
核の土台(位置合わせの align.py など)と頁の照合(pages.py)を設計して書き、部品を統合しました。
順序を仮定しない照合
頁の並び順を前提にせず、絵が一致する頁どうしを結ぶ照合を設計して書きました(2026-09-08)。
デモ
このページのデモ(ブラウザの中の位置合わせとレンズ)を書きました。
開発の監督
設計、基準、検収、記録を受け持っています。

ACCESS

kasanegi を試していただける方を募集しています

PC 版のベータは高い評価をいただいており、有料での利用を希望する方は 20 人を超えます。語学を学んでいる方を歓迎します。ご希望の方は、メールでご連絡ください。

英語を学ぶ方日本語で読んだことのある漫画を、英語版と重ねて読めます。
日本語を学ぶ方英語版で知っている場面を、日本語版の吹き出しで確かめられます。
ほかの言語を学ぶ方学んでいる言語も教えてください。
contact@kasanegi.com →

件名に「kasanegi 利用希望」と書いていただけると助かります。