以下の内容はhttps://memorandums.hatenablog.com/entry/2026/02/17/191417より取得しました。


WEBカメラのレンズ歪み補正を初体験

OpenCVを初めて触ったのはProcessingだったような気がします。本当に手軽に使えるので感動したような。何冊かOpenCV関連の本を買って読んだような気もしますが。特に深い用途がなかったのでさーっと読んだ程度でした。今ならPythonで手軽に実行できますから用事さえあればすぐに動かせますね。本とかWebページに「レンズ歪み補正」やチェッカーフラグのようなものを見た記憶がありましたが、実際に補正をやったことがありませんでした。知っていても用事がないとやらないもので。

で、ピアノの鍵盤を以下の古いWebカメラで撮影して使用しているのですが、120度と広角レンズなので端の方で歪みます。これは誰がみてもわかるレベルでした。そこで色々と画像処理をしようとすると不都合が当然出てきます。

  • バッファロー

何かマッピング関数のようなものを作ってやるのかと思えば、まずはレンズの歪み補正をしたらいい、ということでしたのでやってみたという話しです。

最初はCopilotにお任せで作ってもらったのですが全然動かない。。。なぜ動かなかったのかは解析していませんが。

しかたがなく、動きそうなコードを探してきました。先人のリポジトリにあるコードを使わせてもらいました。仕組みを1つ1つ理解している時間がないのでとにかく動くものを正とするのは現場ならではです。その場しのぎなので本当はよくないのでしょうけどね。。。💦

qiita.com

で、これを使わせてもらいながら、自分のプロジェクトに取り込むようにCopilotに指示したもののこれがまたうまく取り入れられない。。。AutoモードにしていたのでClaude Haiku4.5が選択されていたようでしたのでSonnet4.5に切り替えたけど状況はあまり変わりませんでした。既存のコードを読んで変更するのが苦手ですね。。。まだまだ。

もう何時間もかけてやっと動いたんですよ。それがこれ。なんで補正前より補正後の方が歪んでるんだよ。。。その前に色々と動かないときにWEBカメラの画角が120度と伝えたらfisheyeでやるべきだというので変えたんでした。この画像をGeminiに見せて(ちゃんと理解するんですよ。。。凄いですね)、問題点を聞くと魚眼レンズの補正が効きすぎて結果歪んでしまっているようだ、とのことでした。

ということで、上記の参考コードのノーマルレンズ用を動かしてみるとビンゴでした🎉 

ちゃんと補正が聞いて歪みがなくなりました。これぞ画像処理という感じです。

やっと半歩進んだ。。。キャリブレーションの様子はあるようでないんですね。。。当たり前すぎなんでしょうね。

(正しいかはわからないのですが)せっかくなので動画にメモしておきました。嘘情報にならなければいいのですが。。。とりあえず成功したのでよいかと。

youtu.be

でわ。




以上の内容はhttps://memorandums.hatenablog.com/entry/2026/02/17/191417より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14