フィルターのクリア

How to properly scale image matrices when using different optical filters

5 ビュー (過去 30 日間)
victor law
victor law 2017 年 2 月 16 日
コメント済み: victor law 2017 年 2 月 22 日
Hi there,
My aim: to create a composite image flux map, however before I can crop and combine the following images, I need to scale the brightness of each image.
I am doing a flux mapping project that requires taking images of concentrated light with different optical filters. Throughout the process, both the target and camera are stationary, only different camera filters are changed.
I took images with 5 different Neutral density filters (ND Filter 1-5), and from what I understand, these filters are based on a logarithmic scale for transmission of light. ND 1 has a transmission of 10%, ND 2 has a transmission of 1% and ND 3 has a transmission of 0.1%.
If I take the first image as my base image, I need to scale the rest of the images. From what I understand in the matrix form, each pixel has a value from 0-255 to represent a brightness scale, where 0 is perceived as black and 255 perceived as white. To scale the second image to the first image, I need to increase the brightness by 10. Initially I thought it was just multiplying by 10 in the pixel value. However this must be incorrect since the limit is only 255. I do not understand the pixel brightness scale.
Can someone show me how to increase the brightness of my second image by 10, third image by 100?
Many thanks!
Below are the photos of the same target with different filters.
ND 1 is used for this image.
ND 2 is used for this image.
ND 3 is used for this image.

回答 (1 件)

Image Analyst
Image Analyst 2017 年 2 月 22 日
編集済み: Image Analyst 2017 年 2 月 22 日
First of all, we need to make sure none of the pixels are saturated, otherwise you might be out of luck. Can you say that? Basically we need to scale the images, but only the non-saturated pixels and add all the images together. In the case where an image is not saturated with two or more filters then you'll have to make some decision, like take the average of the values or something.
Next we need to know what the gamma of your camera is. Hopefully it's linear. If not, then you must map that gamma first.
Only then can you multiply each image by the appropriate intensity scaling factor. I.e. divide by the transmission fraction.
  3 件のコメント
Image Analyst
Image Analyst 2017 年 2 月 22 日
Well you have to cast to double of course. There's no way you can get the dynamic range you need if you leave as uint8.
victor law
victor law 2017 年 2 月 22 日
Thanks,
I used double() and attempted to scale my image based on the transmission. I am getting unique values in the 700s and 800s.
How do I get it back to the appropriate image form? I tried imshow() and even converting back to uint8 imshow() but I am getting completely saturated image, whole image is white.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeMATLAB Support Package for IP Cameras についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by