フィルターのクリア

Rescale Depth RGB image between zeros and one?

2 ビュー (過去 30 日間)
Salem
Salem 2014 年 12 月 12 日
コメント済み: Salem 2014 年 12 月 12 日
Dear All, I have 1000 d-rgb images (unit16) and each image has different size. I want to normalize the image by resizing them to [0 1] interval. Could you please tell me if there is a function or an efficient algorithm which can do such operation. I transfer the image to double and single, but the scaled images become since 0 and 0.05 intervals. Bye the way the scale of d-rgb image is different from image to others which scaled from zero to greater than 3000.

採用された回答

Adam
Adam 2014 年 12 月 12 日
編集済み: Adam 2014 年 12 月 12 日
normImage = single( imageData ) / single( max( imageData(:) ) );
will scale a single image between 0 and 1.
If you want to scale every image independently between 0 and 1 then you can just use that on each image.
If you want to scale all images with the same scale factors then you would have to scan over all the images first and find the maximum value across all images and then use that value for every image in place of max( imageData(:) ) for each image.
If your images do not contain 0s though and you want to map the minimum data value of the image to 0 then it is a little more complicated. This is something I created a custom RangeMapper class for so that I don't have to go over the maths any more!
  1 件のコメント
Salem
Salem 2014 年 12 月 12 日
Great, thank you very much. My images have zeros as min number.

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

その他の回答 (1 件)

Image Analyst
Image Analyst 2014 年 12 月 12 日
You can't resize the images to 0-1. How many pixels would that be? You need at least a 2 row by 2 column array to have an image. You can have, say 1000 pixels across or tall, and if you want you can define a spatial calibration factor such that 1000 pixels equals one unit of whatever distance measuring unit you want, such as meters.
Also explain what a "d-rgb" image is, as opposed to just a normal RGB full color image.
  3 件のコメント
Image Analyst
Image Analyst 2014 年 12 月 12 日
From the answer you accepted, it looks like you actually didn't want to resize your image like you said. You want to change the intensity range , not the size . To do that you can use the function mat2gray(). It scales an array with any range of values to the range 0-1. I also added the "kinect" tag for you.
Salem
Salem 2014 年 12 月 12 日
You are right, thank you.

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

Community Treasure Hunt

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

Start Hunting!

Translated by