4

プログラム可能な軸コントローラーを備えた顕微鏡で自動焦点合わせをプログラミングしています。テストのために、露出や軸の位置などに応じて画像を返すシミュレーションを実装しました。シミュレーションは良い画像を取得し、それを歪めます-たとえば、明るくしたり、暗くしたりします。

焦点が合っているかどうかの最初の指標は、鋭いエッジです (私のタイプの画像ではうまく機能します)。基本的に、隣接するピクセル間の強度差を合計します。合計が高いほど、焦点が合っています。

私の質問は、焦点の合っていない画像をシミュレートする方法ですか? 誰かがすでにそれを実装しましたか?フィルターのシーケンスは素晴らしいでしょう。

cvSmooth を試してみましたが、現実的な結果が得られませんでした。

PS: 私の現在の回避策は、焦点位置からの距離に反比例して ROI サイズを変更することです。アルゴリズムのテストには適していますが、シミュレーション中に画像が変化しないため、デモンストレーションには適していません。

4

1 に答える 1

4

(スタック オーバーフローがドメイン固有の問題が大きいため、問題の適切なサイトかどうかはわかりません)

点像分布関数(PSF)の条件内で顕微鏡を表示します。PSF は、顕微鏡内の点状光源の像を表す関数です。3D 点広がり関数から 1 つの平面を取得すると、この軸方向距離の焦点ぼけ動作が発生します。画像を点像分布関数画像で折りたたむと、焦点が合っていない画像が得られます。この操作は通常、「フォールディング」、「畳み込み」、または「カーネルによるスムーズ」と呼ばれます。

もちろん、顕微鏡には点広がり関数が必要であり、考慮すべき詳細がたくさんあります。最も重要なのは、関連する光学系の種類、開口数などです。関連する光学文献を調べてください。Sibaritas Deconvolution Microscopyは良いスタートのようです。

一般に、3D デフォーカスには、フェーズを介したベッセル関数の統合が含まれることに注意してください。軸方向のデフォーカスが顕微鏡の横方向の解像度の約 2 倍以内であれば、ガウス マスクを使用して動作を近似できる場合があります。これは、通常の顕微鏡で 1 ~ 2 ミクロン程度です。軸方向のデフォーカスが大きい場合は、積分を計算する必要があります。これが OpenCV の範囲内にあるとは思えないため、デフォーカス関数を事前に計算する必要があります。

私の論文プロジェクトrapidSTORMには、石油目的の実装がありますが、コード(pixelatedBessel.cpp)はopencvにありません。

特に大口径顕微鏡の場合、計算はかなり複雑になりますが、私の研究室では通常、点状の光源 (量子ドットなど) を顕微鏡に取り付けて、Z ステージに任せることを好みました。

于 2013-01-31T13:36:47.727 に答える