필터 지우기
필터 지우기

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