魚眼レンズ写真補正アプリ「uonome」をアップデートしてver1.1リリースしました

「uonome」アップデート

 去年末リリースした魚眼レンズ写真を超広角レンズ写真に変換する「uonome」。思ったより反響あったので、アップデートしてみました。

f:id:karaage:20160103220031p:plain:w640
 スクリーンショット

 違いは大きく下記4点です。

  • バイリニア(Bilinear)・バイキュービック(Bicubic)補間機能追加
  • 画像天地クロップ機能追加
  • 動作高速化(+リファクタリング)
  • Processing3対応

「uonome」ver1.1アップデート(インストール)方法

 GitHubでver1.1としてリリースしました。

 アップデートするには再度入れ直すしかないので、前回のverは捨てて下さい。そしたら、上記サイトに行ってMacなら「uonome_for_mac_v1_1.without_java.zip」をダウンロードして下さい。Javaがインストールされている前提です。前回のバージョンが動いていればこれで問題ないはずです。Javaが無いといって怒られたら、Javaをインストールするか、Javaが入っている「uonome_for_mac_v1_1.with_java.zip」をダウンロード下さい(ファイルサイズが大きいので注意)。
 Windowsの場合は、32bitなら「uonome_for_win32_v1_1.zip」をダウンロード。64bitなら「uonome_for_win64_v1_0.zip」をダウンロードして下さい。よくわからない人は順に試していけばよいです。

 2016/01/06追記:D*isuke YAMAKAWAさんが、Windowsで「uonome」を動作確認してくださって動かなかったので、ソースコードからバイナリファイル作成から配布までしてくださった上に、ソフト改良してまでして下さいました(下記記事参照)。
http://blog.lovepenta.xyz/2016/01/uonomepentax-q-03lens.html

 感謝感謝です。暫定版として、githubにも「uonome_for_window_patched.zip」を置きました。Windows持ちの方はこちらをダウンロードした方がよさそうです。

 ダウンロードしたら、zipファイルを解凍(ファイルの解凍の仕方はグーグルさんに聞いてね!)した後、実行ファイルを実行すれば起動できます。使い方は前のバージョンと基本的に同じですが、バージョンアップでの差分だけ詳細記載します。続きは「uonome」に興味津々丸な方のみご覧下さい。

「uonome」アップデート詳細

 アップデートの詳細です。

バイリニア(Bilinear)・バイキュービック(Bicubic)補間機能追加

 待望(?)の補間機能を入れました。最初から入れとけよという話ですよね。バイリニア(Bilinear)補間を自分で実装して満足していたのですが、なんと伝説の男M野君ことkumattauさんがバイキュービック(Bicubic)補間を実装したプログラムをGitHubでpull request(改善したプログラムの提案)してくれました!最高!(kumattauさんは某企業でソフト屋さんとして元気に働いています)。
 デフォルトは設定は、バイリニア補間設定として補間方法をメニュから選択できるようにしました。画質にこだわるならバイキュービック補間を、時間優先ならニアレストネイバ補間(前回同等)を選んでください。画像サイズが大きいとバイキュービック補間だと計算時間かかるのが体感できると思います。また、バイキュービック補間ではαというパラメータを変えることでシャープネスを変えることもできますので、こだわる方は色々弄ってみて下さい。αの値はOpen CVがデフォルトは-0.75にしているということで、デフォルト値は-0.75としました。
 以下補間の違いによる画質の変化を確認した結果です。

f:id:karaage:20160103215039j:plain:w640
 ニアレストネイバ補間


f:id:karaage:20160103215109j:plain:w640
 バイリニア補間(new!!)


f:id:karaage:20160104102842j:plain:w640
 バイキュービック補間(new!!)

 えっ?違いがわからない?というボンクラども(私もです)のために上の写真の白抜き部分を拡大表示したのが以下です。

f:id:karaage:20160103215142p:plain
 ニアレストネイバ補間


f:id:karaage:20160103215158p:plain
 バイリニア補間(new!!)


f:id:karaage:20160104103506j:plain
 バイキュービック補間(new!!)

 これなら目が腐っている私でもわかりますね、ギザギザの部分が気持ち滑らかになっています。バイリニア補間とバイキュービック補間の違いはぱっと見わかりませんが、αの値を弄ったりするとシャープネスが変わるので写真に合わせて変えてやるとよいと思います。補間凄い!人類補間計画!

画像天地クロップ機能追加

 「uonome」で一杯まで広角画像にすると、中央上下が切れてしまいます。id:OKP さんがわざわざPhotoshopでクロップしているとおっしゃっていたので、それは面倒くさいだろと思い機能追加することにしました。左のメニュのCROP_VALというスライダを横に動かすと天地をクロップできます。あくまでおまけ機能なので、もっと凝ったことやりたい人は別のアプリで好きにクロップするのがよいと思います。

動作高速化(+リファクタリング)

 GitHubでT-Kusanoさんが、pull requestをしてくれました。私が無意味な計算を毎回していた部分を直してもらい、動作が軽くなりました。後は、私の汚いコードを見かねたのかプログラムを全体的にリファクタリング(機能そのままで見やすく修正)して下さいました。おかげでかなり見やすく綺麗になり、私の勉強にもなりました。集合知により、プログラムが改善されていく、これがオープンソースソフトウェア開発の醍醐味ってやつですね。

Processing3対応

 「uonome」を開発しているプログラム言語、Processingの最新版Processing3.0.1に対応しました。ユーザにとっては特に影響はないのですが、移植の関係で、コントロールメニュのウィンドウとプレビュ画面のウィンドウが別々だったのを1つにしました(仕方なく)。あと、実行形式のプログラムのサイズが大きくなりました。なんか悪いことだらけですね。
 いいこととしては、私がVimエディタといういかしたエディタで開発できるようになったことです。詳細は下記参照下さい。これで開発効率50%くらいアップです(あくまで個人の実感)。

 そう、つまりプログラムのアップデートというのは基本的に開発者の都合なのです。みなさん騙されてほいほいとソフトウェアアップデートしないように気をつけましょう。特にiOSとかね。

まとめ

 「uonome」当初予定していた機能を全部追加できたので、今回のver1.1を区切りとして開発完了とします。もともと、このソフトは魚眼レンズの補正のみを目的とした手軽に使える完結した小さいアプリをコンセプトにしていたので、大きな機能追加もする予定はありません。もし他に必要な機能出てきたらまた別のソフトを作ろうと思います。後は、小機能追加の要望受けたり、バグ発見したらちょこちょこ修正するかもという感じです。バイキュービック補間は入れてもよいかな…。もちろんpull requestは継続して受付中です。
 ニッチを狙った小さいソフトにも関わらず、何故か予想以上に拡散されてしまったためネガティブな反応も出てきて少し戸惑いましたが、予想以上に多くの人に使ってもらって反応もらったり、GitHubでpull request貰えるという予想以上の効果もあったので個人的にはかなり満足できました。本業はハード開発だったので、ソフトはほぼ素人で得意じゃないのですが、ソフト開発もなかなか楽しいものですね。また気がむいたら何か作ってみようかと思います。

関連記事


 伝説の男、M野君ことkumattauさんについて詳しく知りたい方はこちらから