Hazy image equation implementation.
    4 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
I have an hazy image equation. When I am try to implement that equattion I only get a black image only.
.png)
This is my equation. How can I implement this equation in matlab correctly.Please help me.
1 Kommentar
Antworten (2)
  Thiago Henrique Gomes Lobato
      
 am 20 Okt. 2019
        
      Bearbeitet: Thiago Henrique Gomes Lobato
      
 am 20 Okt. 2019
  
      Can it be possible that you are just making a wrong conversion of your image data? With the code below I show an example of what would be a right and wrong conversion, besides this the code seems to work :
rng default
% Image and parameters
I = imread('cameraman.tif');
A = 0.5;
t = randn(size(I)); % t must have same dimensions as I
t = abs(t)/max(abs(t(:)))*0.7+0.3; % Normalize so no division by zero value possible
Hazy = @(I,A,t) (I-A*(1-t))./t; % Define your function, make sure it is element-wise
% Wrong Image conversion 
J1 = Hazy(double(I),A,t);
% Right image conversion
J2 = Hazy(im2double(I),A,t);
figure,
subplot(1,3,1)
imshow(J1)
subplot(1,3,2)
imshow(I)
subplot(1,3,3)
imshow(J2)

If you have a RGB image, make sure to apply it individually to every third dimension of your image matrix. 
4 Kommentare
  Thiago Henrique Gomes Lobato
      
 am 25 Okt. 2019
				The problem was that you was defining your filter as a function of the image values before converting to normalize doubles, so your t had some crazy negative values and produced the black image. The following code works:
clc
clear
rng default
% Image and parameters
M= imread('5.3.02.tiff');
I=im2double(M);
tot = sum(double(I(:)));
[K L] = size(I);
A=((1./(K*L))*tot);
SD=std2(I);
t1= (I./A);
t2= SD * t1;
t= 1-t2;
Hazy = @(I,A,t) (I-A*(1-t))./t; % Define your function, make sure it is element-wise
J1 = Hazy(I,A,t);
figure,
subplot(1,2,1)
imshow(J1,[])
subplot(1,2,2)
imshow(I,[])

  Image Analyst
      
      
 am 20 Okt. 2019
        Chances are that your image is floating point and you forgot to put [] in imshow.
imshow(yourImage, []);
0 Kommentare
Siehe auch
Kategorien
				Mehr zu Convert Image Type finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!





