Prev: MATLAB
Next: Shadow removal
From: Luca on 21 Jul 2010 10:26 "Sandeep " <sandeepdevasrii(a)gmail.com> wrote in message <hafchq$bl1$1(a)fred.mathworks.com>... > > Hi all, > > I am trying to implement a shadow removal algorithm in matlab. I follow the paper > written by Mr.Graham.Finalyson i.e, "Shadow removal using Entropy minimization". > First of all i am trying to get 1-D illuminant invariant image by assuming that we > know the projection angle. I took some known images from the above mentioned > paper so that i know the projection angle and there is no need of entropy calculation. > The program which wrote works with some images and seems to be failed with some images. Please help me if some one has some experience with this algorithm. I am appending small part of my matlab code which is written to produce a 1-D illumination invariant image. > ------------------------------------------------------------------------------------------------------------------ > > I = imread('file1.tiff'); > J = im2double(I); > > R = J(:,:,1); > G = J(:,:,2); > B = J(:,:,3); > > [len,wid] = size(R); > > % Generation of 2-D Log Chromaticity Image. > for i = 1:len > for j = 1:wid > if ((R(i,j)*G(i,j)*B(i,j))~= 0) > c1(i,j) = R(i,j)/((R(i,j)*G(i,j)*B(i,j))^(1/3)); > c2(i,j) = G(i,j)/((R(i,j)*G(i,j)*B(i,j))^(1/3)); > c3(i,j) = B(i,j)/((R(i,j)*G(i,j)*B(i,j))^(1/3)); > else > c1(i,j) = 1; > c2(i,j) = 1; > c3(i,j) = 1; > end > end > end > > rho1 = mat2gray(log(c1)); > rho2 = mat2gray(log(c2)); > rho3 = mat2gray(log(c3)); > > X1 = mat2gray(rho1*1/(sqrt(2)) - rho2*1/(sqrt(2))); %(1/sqrt(2); -1/sqrt(2); 0) > X2 = mat2gray(rho1*1/(sqrt(6)) + rho2*1/(sqrt(6)) - rho3*2/(sqrt(6))); %(1/sqrt(6); 1/sqrt(6); -2/sqrt(6)) > > theta = 120; > > InvariantImage = cos(theta*pi/180)*X1 + sin(theta*pi/180)*X2; > > ----------------------------------------------------------------------------------------------------- > > Thank you all, > Sandeep P Hi, at the end did you find the solution of this problem? I'm as you with the same problem. I want to implement the algorithm to find the minimum entropy value....
From: casa on 24 Jul 2010 09:18 hi,i use this code to plot Entropy : X1 = mat2gray(rho1*1/(sqrt(2)) - rho2*1/(sqrt(2))); X2 = mat2gray(-rho1*sqrt(6)/4 + rho2*sqrt(6)/4 + rho3*(sqrt(6)/4)); for t=1:180 delta = t*pi/180; img = cos(delta)*X1 + sin(delta)*X2 ; logimg = -log(img); r=img.*logimg; n(t)=mean(abs(r(:))); end; plot(abs(n(:)), 'DisplayName', 'n', 'YDataSource', 'n'); figure(gcf) [v,idx]=min(n(:)); result are inconsistent amongst the papers. may be the paper use some high precision bmp.
From: casa on 24 Jul 2010 09:19 hi,i use this code to plot Entropy : X1 = mat2gray(rho1*1/(sqrt(2)) - rho2*1/(sqrt(2))); X2 = mat2gray(-rho1*sqrt(6)/4 + rho2*sqrt(6)/4 + rho3*(sqrt(6)/4)); for t=1:180 delta = t*pi/180; img = cos(delta)*X1 + sin(delta)*X2 ; logimg = -log(img); r=img.*logimg; n(t)=mean(abs(r(:))); end; plot(abs(n(:)), 'DisplayName', 'n', 'YDataSource', 'n'); figure(gcf) [v,idx]=min(n(:)); result are inconsistent amongst the papers. may be the paper use some high precision bmp.
|
Pages: 1 Prev: MATLAB Next: Shadow removal |