2017-12-11 13 views
0

200倍の顕微鏡にカメラが取り付けられています。画像は、カメラマトリクスまたは落雷またはその両方によって引き起こされるブライトネスの不均一な分布を示す。光学系の像を均等化する

imagediagonal profile

私はピクセルbrightnesを均等にしたいです。私が呼吸に使うことができる材料を見つけることは容易ではありません。例えば、顕微鏡は風景のように見えます - 表面は平等ではありません。私の考えは、デバイスのキャリブレーション中に顕微鏡の焦点をずらしてイメージを作ることです。その分布を使用して、ピクセルごとの補正値を計算することが可能でなければならない。残念ながら、それは要因が暴露によって変わるように見えます。しかしそれはまだ実行可能です。

私にとっては非常に一般的な問題のようです。 OpenCVはそれを扱う何かを提供していますか?

P.S.単一画像では、この明るさの不均一な分布は問題ではない。大きな表面をスキャンして縫い合わせると目に見えるようになります。

+0

これはいかがですか? https://i.stack.imgur.com/aHIvs.png – Silencer

+0

@Silencerはよく見える –

答えて

2

私は同じような問題をしばらく前に解決しなければなりませんでした。これはすべてのカラーチャンネルで同じですか?あなたは可能性:

  1. Blur the image with cv::blur(...)
  2. スケールダウンぼやけた画像の最小値、最小値が今あるので、ゼロ
  3. Subtract that blurred image from all input images with cv::subtract(...)

完全なコードは次のようになります。

// Input matrix 
// Image with "nothing" 
Mat colorProfile = ...; 

// Blur 
blur(colorProfile, colorProfile, Size(3, 3), Point(-1,-1)); 

// Translate the pixels down 
double min, max; 
minMaxLoc(colorProfile, &min, &max); 
colorProfile = colorProfile - min 

// Then for every image: 
Mat inputImage = ...; 

subtract(inputImage, colorProfile, inputImage); 
+0

これは手動でもできましたか?つまり、Opencvにはこれのために何もないのですか?一般的なopencvクラスのアイディアかもしれません。 ところで、あなたの校正面は何でしたか?また、光源の焦点がずれていますか?どのように違う暴露を扱ったのですか?すべての曝露に対して唯一の矯正マトリクスがありましたか?曝露/ゲイン/光源強度の適切な範囲の式または多数の行列の配列を使用しましたか?(私の場合、最後の2つの係数は一定です) –

+2

基本的には、「ベースライン」を見つけて、すべての画像から差し引いています。私はそれを行うためにopenCVに組み込まれているものはないと思います。私はエッジに向かってコサイン・フォールオフを持つ画像を持っていました(基本的にケラレる) – Jason

関連する問題