スポンサーサイト
- --/--/--(--) -
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
この記事のURL | スポンサー広告 | ▲ top
SuperCubicフィルター
- 2010/06/30(Wed) -
SuperCubicフィルターはフォトショップのプラグインフィルター。
Equirectangular画像の天地部分をRectilinearに変換して、また戻すことができます。
全方位パノラマでの底面修正(三脚消去)に便利なフィルターです。
http://www.superrune.com/technical/software_supercubic.php

非常に応用が利くフィルターで、このブログで紹介している手順でもよく登場するものの、
まだ、紹介する記事を書いていなかったので、改めて紹介です。

これは、Rune Spaans氏の作ったドネーションウェアで、32bit版WINDOWSでしか動作しません。
フォトショッププラグインですが、フリーの画像編集ソフト GIMPでも使う方法があります。

PTGuiなどのステッチソフトから出力されたEquirectangular画像は、天地の部分が横に引き伸ばされており、
そのままではレタッチが難しいです。
WS000124.jpg

そこでこのフィルターの出番。
レイヤーごとにRectilinearに変換することができます。
WS000126.jpg

こんな感じに。
(変換する際に天地以外の部分は失われます。必要に応じてレイヤーをコピーしてから使ってください)

で、Equirectangularに戻すこともできます。
WS000131.jpg

と、こんな感じ。
詳しい使い方などは、他のエントリーで説明していますので省かせてもらうことにして、
設定項目を見てみましょう。
WS000125.jpg
EquirectangularからRectilinearに変換する際の画面です。
プレビュー画面があるので、各パラメーターの意味で迷うことは無いと思いますが、一応解説を。

Want to Extract は変換する範囲。天地を変換する、天だけ、地だけを選べます。Zenithが天、Nadirが地です。

Projection Angle は、投影角度。変換する角度を設定します。デフォルトは90なので、底面90°を変換します。

Projection Spin は、回転です。プレビューを見ながら好きな角度に回してください。

Interpolation Type は、変形の際のアルゴリズム。幾つかから選ぶことができます。

RectilinearからEquirectangularに変換する画面では、これに、Blend Trantion:ボケ足の長さ の設定が加わります。


このフィルターのいいところは、選択したレイヤーだけ変換できるので、いろいろ応用が利くところです。
PTGuiのViewpoint補正機能とも上手く絡めて使えますし、三脚を消すだけじゃなく、
重ねたいレイヤーを選んで変換すれば天地部分のクリーニングにも使えますし、
レイヤーマスクにも使えるので、天地の特定の部分にだけ調整レイヤーをかけたい場合にも便利です。
スポンサーサイト
この記事のURL | tips・機材 | CM(0) | TB(0) | ▲ top
レイヤーマスクを残したまま底面修正
- 2010/06/27(Sun) -
QTVR作成手順ではSuperCubicフィルターを使って三脚を消去する手順を紹介しました。
http://panoisland.blog36.fc2.com/blog-entry-41.html
その中では、フォトショップでクリーニングの終わったレイヤーを統合してから三脚消去作業に入りましたが、
統合は必須ではなく、各レイヤーとマスクはそのままで進めることもできます。

QTVRに変換してから、クリーニングの不備に気が付くこともあるので、統合せず手直ししやすい状態を保ったままの方が安心ですね。
「クリーニング作業で苦労した。各画像のレイヤーマスクを塗りまくった。」
という場合は特にそうです。まだ見落としがあるかもしれません。

今回は元画像には変更を加えず、できるだけ可逆性を保ったまま進める手順の紹介です。
QTVR作成手順の三脚消去の部分だけ読み替えてください。




どこが違うかというと、手持ち底画像を重ねるためのガイドレイヤーとして、
統合後のレイヤーではなく、一番下のブレンドレイヤーをコピーして使うだけです。
あと、手持ち底画像もマスク適用、変形を避けるために、ひと手間かけてみます。

一番下のブレンドレイヤーをコピーして、手持ち底レイヤーのすぐ下に移動させます。
これは三脚の上に画像を重ねるためのガイドとして使います。便宜的にガイドレイヤーと呼ぶことにします。
WS000095-2.jpg

手持ち底レイヤーもコピーします。
WS000096-2.jpg

コピーした手持ち底レイヤーとガイドレイヤーをSuperCubicフィルターでRectilinearに変換して、
手持ち底レイヤーのレイヤーマスクを塗り三脚を隠します。
WS000098.jpg

手持ち底レイヤーのレイヤーマスクをAltを押しながらクリックし、レイヤーマスクそのものを表示します。
レイヤーマスクの全てを選択してコピー、
WS000101.jpg

もうひとつの手持ち底レイヤーのレイヤーマスクにペーストします。
WS000102.jpg
これで変形させていない手持ち底レイヤーにも同じマスクがかかりました。
(レイヤーマスクのコピーはもっと簡単な方法がありそうですよね。誰か知ってたら教えてください)
WS000103.jpg

Altを押しながらレイヤーマスクをクリックして普段のモードに戻し、
Rectilinearに変換したレイヤー2つは、もう使わないので非表示にしておきます。

さっきペーストしたレイヤーマスクを選択し、SuperCubicフィルターでEquirectangularに変換して完成。
(SuperCubicフィルターはレイヤーマスクも変形できます。)
WS000105.jpg

WS000106.jpg

色調補正が必要な場合は調整レイヤーを使いましょう。

もし後で底面を修正する場合は、非表示にしているレイヤーでマスクを再編集して、
マスクのコピペと変換をもう一度行います。



こうすると、元画像に一切手をつけずに済むうえ、各画像のレイヤーマスクは保持したままで、
完成したEquirectangularを出力できるので、後からの手直しはかなり楽になると思います。
こうした可逆性の高い状態でクリーニングから最終出力まで通せるのは、SuperCubicフィルターを使う大きなメリットです。
ただ、こだわると手間はかかりますので、後から修正する可能性がどの程度なのかによって使い分けましょう。

個人的には、手持ち底は失敗したときの予備としてレイヤーをコピーしておけば、
失敗に気づいたら、またやり直したらいいかなー。と思っています。
三脚消去の前の統合はしない方がいいですね。こっちは手間が変わりません。
ただ、クリーニング作業で三脚のキワまで修正している場合は、この手順そのままではダメです。
ガイドレイヤーを作る際に一工夫してください。統合する工程を入れたのはそういうクリーニングの影響を受けないようにするためでもあります。
(残りの理由は、今日紹介した手順をすっかり忘れていたためです)


紹介した手法と、後で三脚消去のミスに気が付いた際の修正方法をスクリーンキャストしました。
この記事のURL | PTGui | CM(0) | TB(0) | ▲ top
PTGui解説 optimizer画面
- 2010/06/23(Wed) -
PTGuiを使うにあたって、このオプティマイザー画面が一番ややこしいのですが、思うようにステッチを進めるためには避けて通れない画面です。
WS000024.jpg

オプティマイザーは、各コントロールポイントがうまく重なるように、画像の位置や向き、画角やレンズの歪みなどの各パラメーターを分析します。そして突き止めた数値が各画像に適用されます。
適用された各パラメーターはレンズセッティング画面、イメージパラメーター画面で見ることができます。

あくまでもコントロールポイントがキレイに重なるように調整するだけ。というのが大切なポイントです。
電線が空中で切れているとか、そういう絵としてズレているかどうかはPTGuiには分かりませんし、
コントロールポイントの無いところはいくらズレていてもお構いなしです。

とりあえず、simpleモードはAdvanceモードに内包されているので、アドバンスモードだけ説明します。


WS000025.jpg

まずは画面の左の方、Optimize globallyとOptimize per image の解説です。
チェックボックスは「オプティマイズ(最適化)するかしないか」を指定します。
ここでチェックのついているパラメーターは画面下の「Run optimizer」ボタンを押すと、コントロールポイントから計算された新しい数値に入れ替わります。
チェックを入れていない項目は、「今の数値を維持」となります。
チェックを外してオプティマイザーを回してもゼロに戻る訳ではありません。

なので、たとえば、「苦し紛れにshearにもチェックを入れてオプティマイズしたら余計にズレてしまった」
という場合、shearのチェックを外してもう一度オプティマイズしてもダメです。
ズレの原因となったシアー値はそのまま保持されているので、アンドゥでオプティマイズする前に戻すか、イメージパラメーター画面で全画像のshearパラメーターを0にします。



左側のOptimize globallyの部分。
Optimize globallyは全画像で最適化とか包括的に最適化と訳すのがいいでしょうか。
これらはレンズ画面で出てきたパラメーターですね。この数値は同じ機材で撮っていれば同じ数値になるはずなので、オプティマイズするかどうかのチェックボックスも全画像でひとつです。
オプティマイズして得られる数値も全画像が同じ数値になります。

デジカメ画像を素材とする場合、shear以外全てにチェックを入れておけば大丈夫だと思います。
私の機材はあまりshiftしてないようなので、最初はshiftにはチェックを入れずにオプティマイズして、調子がよければチェックしてもう一回。という感じでやっています。まぁ最初からチェックを入れてもいいんですが、習慣ですね。どちらでも結果はほとんど同じだと思いますが、後で書くViewpointと同じことがあったらイヤなのでまずはチェックを入れずにオプティマイズしています。
・レンズセッティング画面の解説でも話しましたが、デジカメ使用の場合、shear値はゼロのはずなので、チェックを入れてはいけません。
・クロップ範囲の位置を変更した場合は、shiftはオプティマイズ必須です。チェックを入れておきましょう。



Optimize per image (画像ごとに最適化)は、
画像ごとに異なる数値になるパラメーターを最適化するかどうか。
ヨー、ピッチは360°球面上での画像の位置。ロールは画像の傾きです。
これらはもちろん画像ごとに違うはずですから、画像ごと、パラメーターごとにオプティマイズするか選択できるようになっています。
ざっくり言うと、動かしたい画像はチェックして、動かしたくない画像はチェックを外します。

デフォルトではImage0にチェックが入っていません。ということは、Image0は基準画像として今の位置から動かず、他のイメージがImage0を中心にして繋がっていきます。
もしImage0が傾いていれば全画像がそれにあわせて傾きます。

Viewpointはその画像に視点補正を行うか否かです。
手持ちで底画像を撮影した場合など、他の画像とNPPが違う画像はうまく繋がらないものですが、このVP補正を使えば(条件つきで)上手に変形してくれます。
この機能はコントロールポイントの打ち方などにコツが要りますが、私の手順紹介の中でも紹介していますのでそちらをご覧ください。
あと、この機能を使っている画像のオプティマイズの結果がさっぱりダメな場合があります。
そういう場合は、まずViewpointのチェックを外してYaw,Pitch,Rollだけでオプティマイズしたあと、Viewpointにチェックを入れてオプティマイズすると解消する場合があります。

表の上にLink roll、Link pitch のチェックボックスがあります。
チェックを入れていると、オプティマイズする画像のロール、ピッチが同じ数値になるようオプティマイズされます。
(Optimize globallyとは違い、オプティマイズしない画像の数値はそのままです)
この機能は使ったことがないのでよく分かりません。
リンクロールは、ノーダルニンジャなどのQTVRマウントにはロールを変える機構は無いので、アームのグラつきなどの精度的な誤差を無視すれば、すべて同じ傾きになるはず。ということでついているのだろうと思います。
普通のステッチの場合はロールの誤差も無視できないので、チェックは入れませんが、CPを打てる場所が限られているとロールが各画像でふらついたり、うねりが出たりするので、そういう場合はチェックを入れるとマシになるかもしれません。
リンクピッチはマルチロウじゃない(横に一周させるだけ)パノラマの場合に使ったり、マルチロウで1列づつオプティマイズする場合に使うのかなーと思いますが、なんせ使ったことがないので詳しいことはわかりません。



WS000026.jpg

画面右のuse control point of は、
その画像のコントロールポイントを使うかどうか。
チェックを外していると、その画像のポイントは無効になり、Optimize per imageの項目は最適化されません。
Optimize globallyの項目は他の画像のオプティマイズで得られたパラメーターが一緒に入ります。

底を手持ちで撮ったので他の画像と視差がある場合など、一緒にステッチすると他の画像に悪影響を与えそうな画像がある場合、まずその画像のチェックを外して他の画像のステッチを完成させておいて、次に手持ち画像だけ動かして重ねる。というように2段階に分けて行うと、他の画像への影響を無くすことができます。



invidiualimage
WS000032.jpg

Optimize globallyの項目は、全画像が同じ数値になる。とお話しました。
PTGuiはinvidiualimageと明示してない画像は全て、同じ機材、同じ設定で撮影したことを前提にして仕事を進めます。
もしも他の画像と違う条件の画像を混ぜてステッチする場合はレンズセッティング画面でinvidiualimageにチェックを入れておきます。すると、オプティマイズ画面にチェックボックスが現れ、オプティマイズするかどうか個別に選択できるようになります。
オプティマイズの結果の数値も「全画像で同じ」という制約から外れます。
このあたりはレンズセッティング画面の解説も参考にしてください。

この記事のURL | PTGui | CM(0) | TB(0) | ▲ top
PTGui解説 Lens Settings画面
- 2010/06/16(Wed) -
Lens Settings タブ

このタブは撮影に使ったレンズ、カメラの情報を表示しています。

PTGuiは、一度のステッチで使う画像は「同じ条件で撮影されている」ということを前提にしているので、
ここに表示されている(機材に依存する)パラメーターは、全て同じ数値になるはず。
ということでまとめて表示されています。

これらの数値はimageparameter画面に出ているのと同じ数値で、
分かりやすいようにまとめて表示しているのがこの画面です。

画像を入力した段階ではadvancedの部分には数値が入っていませんが、コントロールポイントを打ってオプティマイズすると、割り出された数値が表示されます。



WS000086-2.jpg

上から順に見ていきましょう。

Lens type:レンズのタイプ
Rectlinear(normal lens) は普通の広角レンズ。魚眼じゃないレンズのことです。
Fullframe は対角線魚眼。
Circular は円周魚眼。これを選択していると、Crop範囲が四角から円に変わります。
あと幾つかありますが、まず使うことはないので解説は省きます。
画像を入力した際にexifの焦点距離からレンズタイプが自動で判別されますが、間違っていた場合はここで正しいタイプに修正しましょう。
(自動判別の基準となる焦点距離はoptionで変更可能です)

Focal length:レンズの焦点距離
35mm換算の値ではなく、そのレンズの実際の焦点距離です。

Focal length multiplier:焦点距離の倍率
CCDのサイズによって決まります。APS-Cサイズならレンズ焦点距離が1.5倍になるというアレです。
35mmフルサイズ機なら1です。
コンパクトデジカメなど倍率が分からない場合は、倍率を1にして焦点距離に35mm換算の数値を入れておきましょう。
焦点距離と倍率は次に出てくる水平画角を計算するためのものですが、それもコントロールポイントから最適化されるので、ここにはだいたいの数値が入っていれば十分です。

Horizontal Field of View:水平画角
左側(actual)は実際の画角。imageparamerter画面と同じ数値が表示されます。実際にステッチで使用するのはこちらです。
右側(theoretical)は理論上の画角。EXIFから計算した画角が表示されます。こっちはただの参考値です。

これらのパラメーターは画像入力時にEXIFからとりあえずの数値が入ります。
コントロールポイントを使ってオプティマイズしたら正確な数値が割り出されて更新されるので、神経質になる必要はありません。EXIFから自動入力されない場合はだいたいの数値を入れておけば十分です。
(あまり見当外れな数値だとステッチに失敗することがあるようです。)

右の「Lens database...」ボタンを押すとレンズデータベース画面が開きます。
レンズデータベースにはこの画面のパラメーター(レンズとカメラに由来するパラメーター)を保存しておくことができます。
普段はオプティマイザーが計算してくれるので必要ないかも知れませんが、
あまりコントロールポイントが打てない絵の場合や枚数の少ないステッチの場合などにロードして使うと便利です。
また、レンズパラメーターがあれば、画像1枚でも魚眼をRectlinearに変換したり、広角レンズの樽型収差補正などができるようになりますので、うまくステッチできたときに保存しておきましょう。



Advanced
WS000086-3.jpg


lens correction parameters
魚眼のゆがみや糸巻き収差など、画像の歪みを定義するパラメータ。
このa.b.c3つの数値と数式でレンズの歪みを表現できます。
a.b.cそれぞれに意味というか役割があるのだと思いますが詳しくは知りません。

Image Shift
hor.は水平方向(ホリゾンタル)、vertは垂直方向(バーチカル)の略です。
画像中心がレンズ光軸からどれだけズレているのかを示します。大判カメラのシフトと同じ意味です。
PTGuiでは種々の補正を正確に行うために光軸の正しい位置が不可欠。
シフトレンズを使っていなくても、レンズの光軸がマウント中心からズレていたり、CCDの取り付け位置がズレていたり という製造上の誤差でも発生します。また、クロップ範囲の位置を変更した場合にも発生します。

バーチカルシフトに100と入れれば、画像は元の位置より100ピクセル上にオフセットして配置され、
光軸位置は画像中心より100ピクセル下ということになります。
各画像の位置を示すヨー・ピッチはその画像の光軸の位置を示していて、ロールもそれを軸にして回るようになるので注意が必要です。

PTGuiのヘルプでは、ちょっと違った使い方として、
スキャナーで分割してスキャンした画像などを元の平面に繋ぎ戻す場合に
各画像の位置をシフト値で指定するという使い方が紹介されています。

image shear
シアーは平行四辺形な歪みのこと。
フラットベッドスキャナーなどで、ラインセンサーとスキャン方向が直交していない場合に起こります。
普通のデジカメは撮像素子が面なので原理上発生しません。0のままでOKです。


Use invidual parameters for:
選択したパラメーターに他の画像と違う数値を使うかどうかチェックボックスで指定します。
他の画像と数値が違うはずの画像はチェックを入れて、同じ数値にされないようにします。
lensはHorizontal Field of Viewとlens correction parameters。
shift、shearはさっき説明したソレ。
cropはクロップ範囲。クロップ画面でinvidualCropにチェックを入れているとココにもチェックが入ります。

最初にも話しましたが、一度のステッチで使う画像は「同じ条件で撮影されている」ということを前提にしていますので、条件の異なる画像を使う場合はチェックを入れて「この画像のこのパラメーターは他の画像とは違う」ことを明示しなければなりません。
チェックを入れておけば、他の画像とは違う数値を使うことができ、オプティマイズの際に最適化するかどうか個別に選択することができるようになります。
もちろんオプティマイズで求めらる数値も「全画像で同じはず」という制約は適用されません。

この機能は、ズームして撮った画像を組み合わせて使うとか、底面のバッチも一緒にステッチするとか、クロップ範囲を他の画像と変えているときに使用します。

ここにチェックを入れた画像のパラメーターは、この画面には出てきませんので ImageParameters画面で確認・変更します。(レンズタイプなどもImageParameters画面で変更できます)
この記事のURL | PTGui | CM(0) | TB(0) | ▲ top
PTGui解説 Crop画面
- 2010/06/01(Tue) -
PTGuiを使うにあたって最大の障害はやはり言語でしょう。
日本語版がないので、メニューも英語、ヘルプも英語です。
私も使い始めたころは試行錯誤しながら、ヘルプと格闘しました。

そんな私がエキサイト翻訳を通して理解した(つもり)ことを書いておこうと思います。
私自身ヘルプを英訳して披露できるような英語力は持っていませんし、普段使わない機能はさっぱり分かりません。
間違えて理解している部分もあると思いますので、私の備忘録程度に思っておいてください。

PTGuiメニューの和訳はQTVR Diaryの二宮氏が既にやってくれているので、
「それをみたら大丈夫」という部分は飛ばして、解説を要するだろう部分だけに絞って進めます。



Crop画面について

Cropは入力した画像を指定した範囲で「切り抜く」機能。
円周魚眼などで「イメージサークルのフチはステッチに使われると困るなぁ」というときに「ここまでが入力する画像」ということを指定します。
円周魚眼では必須ですが、対角魚眼や通常のレンズなら普通はクロップする必要はありません。

WS000088.jpg

入力した画像のレンズタイプによって、四角か丸のクロップ範囲が出てくるので、それの位置、大きさを指定します。
クロップ範囲の設定は全画像に適用されますが、画面右の“Individual crop”にチェックを入れると、
その画像は他と違うクロップ範囲を設定できます。
No Crop ボタンを押すと、クロップされない(画像にフィットする)ように設定されます。



このクロップ機能、簡単なように思えますが、ひとつ気をつけないといけない点があって、知らないとステッチの段階で足元をすくわれてしまいます。

それは、PTGuiのCropは、範囲外の部分を透明化する機能ではなく、最初から無かったことにするという機能だという点です。

つまり、
各画像のFOV値は入力した画像の画角ではなく、クロップ後の画像の画角になり、
Shift値はレンズ光軸とクロップ範囲中心とのズレ量になる。ということです。
一枚だけ違うクロップを設定したら、Fovもshiftも他の画像と変わってしまうので、レンズセッティング画面でIndividualImageであることを指定してステッチしなければなりません。



クロップの注意点
・ クロップ範囲の大きさを変えればFov値が変わる。
・ クロップ範囲の位置を変えればShift値が変わる
・ クロップ範囲の大きさを変えたことで、範囲の中心が変わってもShift値が変わる
・ 基本的には全ての画像に同じクロップ範囲を適用する。
 違うクロップ範囲(IndividualCrop)を使うのはIndivideImageを絡めてステッチできるようになってから。
・ 撮影者の足が見切れていたとか、そういうことの処理にクロップは使わないほうがいい。
 レタッチソフトでクリーニングする際に消すか、素材画像を透過TIFFにして邪魔な部分を透明にして対応する

この記事のURL | PTGui | CM(0) | TB(0) | ▲ top
| メイン |
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。