openCVでハイブリッドイメージを作る

openCVの環境設定が終わったため目標であるハイブリッドイメージの作成を始めました。

ブログ用のPCとは別のPCで作業していたため画像は準備できていないんですが、作業の様子を

まず、ハイブリッドイメージとは目の特性を利用して見方によって2通りの見え方をするように加工した画像のことです。

マリリンモンローとアインシュタインの画像が一番有名です。

今回の方針は

2枚の画像を用意→1枚はハイパスフィルターを通してぼやけた画像に→もう1枚はローパスフィルターを通してエッジが強調された画像へ(ここまで終わった!!)→2枚を重ね合わせて合成→完成!!!111!1!!

今回は合成前の2枚の画像の作成を行いました。

まず、迷ったのはIplImage型で作るべきなのかMat型で作るべきなのか…

取りあえず画像の読みこみのサンプルがIplImage型で作られていたためIplImage型用のガウシアンフィルタ(ローパスフィルタ)をかけました。

が。

 

いろいろ調べているうちに外国の方が

「キミの書き方、イケてないね~HAHAHA!!!」(obsolatedとか書かれていました…)

みたいな書き込みを見つけたのでいそいでMat型に書き替え。

フィルタはガウシアンフィルタをかける関数を用いて少し楽を。(せっかくのライブラリなんで)

 

ガウシアンフィルタについてはむかーしにC言語でカーネルサイズ3×3で実装したことがあったのですが、某イメージングソリューションの解説を読み流しながら係数だけ引っ張ってきたというお粗末なもの。

シグマ???ビット深度???????な状態でしたが調べて何とかローパスフィルタが完成

この勢いで2枚の画像を合成する処理まで終わらせたいな~

 

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Scroll to top