How to make image intensity equalization for multiple images.
    13 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Ivan Shorokhov
      
 el 1 de Jul. de 2015
  
    
    
    
    
    Comentada: mohd akmal masud
 el 14 de Mzo. de 2018
            Given: I have 9 gray-scale images of the same size with slightly different intensity.
Want: I want to make uniform intensity for all the images.
Currently done: Just now I'm doing image adjustment followed be image equalization for each single image, by using code below
for x=1:9
    eq_image(:,:,x)=histeq(imadjust(some_image(:,:,x)));                           
    figure(x); imshow(eq_image(:,:,x), []);
end
Needed: How to make intensity the same for all 9 images?
[ACKNOWLEDGMENTS]
Thank you for help: Kerem tezcan, Image Analyst
0 comentarios
Respuesta aceptada
  Kerem  tezcan
      
 el 1 de Jul. de 2015
        
      Editada: Image Analyst
      
      
 el 31 de Mayo de 2016
  
      Hey,
When you do histogram equalization, you do that separately for each image, which is not what you want, as you have also stated.
You can normalize the images to one of them. For example choose the first image as the reference, and then calculate the mean intensities of all the images, and find the scaling between each image with the reference image by the formula: sc(n) = mean_of_ref / mean_of_ims(n). Then you can multiply all the images with the corresponding individualized scaling and you will have the same mean intensity for all the images.
Other approaches would be to normalize them according to their maximum values, or similarly to the minimum values, or to the median values.
For the scaling according to the mean of the first image, the code would look like this:
for x=1:9
    mns(x) = mean2(some_image(:, :, x));                           
    scaled_image(:, :, x) = some_image(:, :, x) * (mns(1) / mns(x));
end
You can do the histogram equalization independently of the scaling, but doing that afterwards will change the mean of any image you do it to.
2 comentarios
Más respuestas (2)
  Image Analyst
      
      
 el 2 de Jul. de 2015
        You can do linear scaling like kerem suggested. Another option is to use imhistmatch() to match images 2 and higher to image #1.
2 comentarios
  mohd akmal masud
 el 14 de Mzo. de 2018
				Hi all
i want try open multiple images using implay. but want to change contrast first. Below is my code, but still error. anyone can help me.
P = zeros(512, 512, 313);
  for K = 1 : 313
     petname = sprintf('TRANSA001_CT%03d.dcm', K);
     P(:,:,K) = dicomread(petname);
  end
  Out(:,:,K) = imadjust(P(:,:,K));
 implay(Out, [-182 292]);
Ver también
Categorías
				Más información sobre Image Processing Toolbox en Help Center y File Exchange.
			
	Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!




