~gerald-mwangi/+junk/ThesisMatlab

« back to all changes in this revision

Viewing changes to Matlab/StructureTensFeaturesAnal/chambollePockTVPrimalDualELAA.m

  • Committer: gerald.mwangi at gmx
  • Date: 2018-03-21 13:31:26 UTC
  • Revision ID: gerald.mwangi@gmx.de-20180321133126-89jt0jr5vg7n8o3u
work on primal dual code

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
function [ im,endensv,priorsumv,variancev,intrinscurv ] = chambollePockTVPrimalDual( im0,imsize,imclean,lambda ,lambda_data,iterations)
 
1
function [ im,endensv,priorsumv,variancev,intrinscurv ] = chambollePockTVPrimalDualELAA( im0,imsize,imclean,lambda ,lambda_data,iterations)
2
2
%GENERALNEWTONALGOTV Summary of this function goes here
3
3
%   Detailed explanation goes here
4
4
 
17
17
theta=1.0;
18
18
taudual=0.75;%1.0/(4.0*lambda);
19
19
tauprimal=0.1;
20
 
tauspace=0.7;%tau/5.0;
 
20
tauspace=0.9;%tau/5.0;
21
21
px=zeros(imsize);%imfilter(im,[gradf,0],'conv','replicate');
22
22
py=zeros(imsize);%imfilter(im,[gradf,0]','conv','replicate');
23
23
 
60
60
            % py=py./reprojection;
61
61
            % canonx=px;
62
62
            % canony=py;
 
63
            pxold=px;
 
64
            pyold=py;
63
65
            lagpx=dx/lambda;
64
66
            lagpy=dy/lambda;
65
67
                                px=px+taudual*lagpx;%./max(1.0,sqrt(dx2+dy2));
80
82
           
81
83
           
82
84
%             
83
 
            dx=imfilter(ims,[gradf],'conv','replicate');
84
 
            dy=imfilter(ims,[gradf]','conv','replicate');
85
 
%             [dx,dy]=gradient(ims);
 
85
%             dx=imfilter(ims,[gradf],'conv','replicate');
 
86
%             dy=imfilter(ims,[gradf]','conv','replicate');
 
87
% %             [dx,dy]=gradient(ims);
86
88
                                    reprojection=max(1.0,sqrt((dx).^2+(dy).^2));
87
89
            dx=dx./reprojection;
88
90
            dy=dy./reprojection;
121
123
        cfy(id)=imsize;
122
124
 
123
125
        imswarp=interp2(ims, cfx, cfy,'cubic');
124
 
                ims=imswarp-tauprimal*lagim;
 
126
                imsnew=imswarp-tauprimal*lagim;
 
127
                ims=imsnew+theta*(imsnew-imswarp);
125
128
        
126
129
            [dx,dy]=gradient(ims);
127
130
            reprojection=max(1.0,sqrt((dx).^2+(dy).^2));
154
157
 
155
158
 
156
159
 
157
 
%             div_p0 = imfilter(px0, [-1 1 0], 'corr', 0)+ ...
158
 
%                 imfilter(py0, [-1 1 0]', 'corr', 0);  
 
160
%             div_p2 = imfilter(pxold, [-1 1 0], 'corr', 0)+ ...
 
161
%                 imfilter(pyold, [-1 1 0]', 'corr', 0);  
159
162
%     
160
 
%     ims=im0s+lambda*div_p;
161
 
%             lagpx = imfilter(im0s+lambda*div_p0, [-0.5 0 0.5], 'replicate');
162
 
%          
163
 
%         lagpy = imfilter(im0s+lambda*div_p0, [-0.5 0 0.5]', 'replicate');
164
 
%         norm=max(theta,sqrt(lagpx.^2+lagpy.^2));
165
 
%         lagpx=lagpx./norm;
166
 
%         lagpy=lagpy./norm;
167
 
%     fx=-lagpy*tauspace*lambda;
168
 
%     fy=lagpx*tauspace*lambda;
 
163
%     ims2=im0s+lambda*div_p2;
 
164
%   
 
165
%     fx=-py*tauspace*lambda;
 
166
%     fy=px*tauspace*lambda;
169
167
%     
170
168
%                 cfx=fx+xgrid;
171
169
%         cfy=fy+ygrid;
178
176
%         id=cfy>imsize;
179
177
%         cfy(id)=imsize;
180
178
%         
181
 
%         px=interp2(px, cfx, cfy,'cubic');
182
 
%         py=interp2(py, cfx, cfy,'cubic');
183
 
    
 
179
%         px=interp2(px, cfx, ygrid,'cubic');
 
180
%         py=interp2(py, xgrid, cfy,'cubic');
 
181
%     
184
182
%         reprojection = max(theta, sqrt(px.^2 + py.^2));
185
183
%         px = px./reprojection;
186
184
%         py = py./reprojection;
189
187
     curv=(cxx-cyy).^2+(cxy+cyx).^2;
190
188
     intrinscurv=[intrinscurv,sum(sum(curv))];
191
189
 
192
 
     figure(3);
 
190
     %figure(3);
193
191
 
194
192
    im=scale_image(ims,0,255);
195
 
     imshow([uint8(scale_image(im,0,255)),uint8(im0)]);
 
193
     %imshow([uint8(scale_image(im,0,255)),uint8(im0)]);
196
194
        dx=imfilter(ims,xgradf,'conv','replicate');
197
195
    dy=imfilter(ims,ygradf,'conv','replicate');
198
196