Changeset 231 for trunk/src/civ.m
- Timestamp:
- Apr 5, 2011, 12:46:34 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/civ.m
r230 r231 2119 2119 disp(cmd_str); 2120 2120 else %run PIVlab if selected 2121 image1=imread(par_civ1.filename_ima_a); 2122 image2=imread(par_civ1.filename_ima_b); 2123 stepx=str2num(par_civ1.dx); 2124 stepy=str2num(par_civ1.dy); 2125 ibx2=ceil(str2num(par_civ1.ibx)/2); 2126 iby2=ceil(str2num(par_civ1.iby)/2); 2127 isx2=ceil(str2num(par_civ1.isx)/2); 2128 isy2=ceil(str2num(par_civ1.isy)/2); 2129 shiftx=str2num(par_civ1.shiftx); 2130 shifty=str2num(par_civ1.shifty); 2131 % ibx=2*ibx2-1;%ibx and iby odd, reduced by 1 if even 2132 % iby=2*iby2-1; 2133 miniy=max(1+isy2-shifty,1+iby2); 2134 minix=max(1+isx2-shiftx,1+ibx2); 2135 maxiy=min(size(image1,1)-isy2-shifty,size(image1,1)-iby2); 2136 maxix=min(size(image1,2)-isx2-shiftx,size(image1,2)-ibx2); 2137 % maxix=stepx*(floor(size(image1_roi,2)/stepx))-(2*ibx2-2)+ibx2; 2138 [GridX,GridY]=meshgrid(miniy:stepy:maxiy,minix:stepx:maxix); 2139 PointCoord(:,1)=reshape(GridX,[],1); 2140 PointCoord(:,2)=reshape(GridY,[],1); 2141 [xtable ytable utable vtable ctable typevector] = pivlab (image1,image2,ibx2,iby2,isx2,isy2,shiftx,shifty,PointCoord, 1, []); 2142 Data.ListGlobalAttribute={'title','Time','Dt'}; 2143 Data.title='PIVlab'; 2144 Data.Time=str2double(par_civ1.T0); 2145 Data.Dt=str2double(par_civ1.Dt); 2146 Data.ListVarName={'X','Y','U','V','C','FF'};% cell array containing the names of the fields to record 2147 Data.VarDimName={'nbvec','nbvec','nbvec','nbvec','nbvec','nbvec'}; 2148 Data.VarAttribute{1}.Role='coord_x'; 2149 Data.VarAttribute{2}.Role='coord_y'; 2150 Data.VarAttribute{3}.Role='vector_x'; 2151 Data.VarAttribute{4}.Role='vector_y'; 2152 Data.VarAttribute{5}.Role='errorflag'; 2153 Data.X=reshape(xtable,[],1); 2154 Data.Y=reshape(ytable,[],1); 2155 Data.U=reshape(utable,[],1); 2156 Data.V=reshape(vtable,[],1); 2157 Data.C=reshape(ctable,[],1); 2158 Data.FF=reshape(~typevector,[],1); 2121 Data=civ_uvmat(par_civ1); 2122 % image1=imread(par_civ1.filename_ima_a); 2123 % image2=imread(par_civ1.filename_ima_b); 2124 % stepx=str2num(par_civ1.dx); 2125 % stepy=str2num(par_civ1.dy); 2126 % ibx2=ceil(str2num(par_civ1.ibx)/2); 2127 % iby2=ceil(str2num(par_civ1.iby)/2); 2128 % isx2=ceil(str2num(par_civ1.isx)/2); 2129 % isy2=ceil(str2num(par_civ1.isy)/2); 2130 % shiftx=str2num(par_civ1.shiftx); 2131 % shifty=str2num(par_civ1.shifty); 2132 % % ibx=2*ibx2-1;%ibx and iby odd, reduced by 1 if even 2133 % % iby=2*iby2-1; 2134 % miniy=max(1+isy2-shifty,1+iby2); 2135 % minix=max(1+isx2-shiftx,1+ibx2); 2136 % maxiy=min(size(image1,1)-isy2-shifty,size(image1,1)-iby2); 2137 % maxix=min(size(image1,2)-isx2-shiftx,size(image1,2)-ibx2); 2138 % [GridX,GridY]=meshgrid(minix:stepx:maxix,miniy:stepy:maxiy); 2139 % PointCoord(:,1)=reshape(GridX,[],1); 2140 % PointCoord(:,2)=reshape(GridY,[],1); 2141 % % caluclate velocity data (y and v in indices, reverse to y component) 2142 % [xtable ytable utable vtable ctable typevector] = pivlab (image1,image2,ibx2,iby2,isx2,isy2,shiftx,shifty,PointCoord, 1, []); 2143 % Data.ListGlobalAttribute={'title','Time','Dt'}; 2144 % Data.title='PIVlab'; 2145 % Data.Time=str2double(par_civ1.T0); 2146 % Data.Dt=str2double(par_civ1.Dt); 2147 % Data.ListVarName={'X','Y','U','V','C','FF'};% cell array containing the names of the fields to record 2148 % Data.VarDimName={'nbvec','nbvec','nbvec','nbvec','nbvec','nbvec'}; 2149 % Data.VarAttribute{1}.Role='coord_x'; 2150 % Data.VarAttribute{2}.Role='coord_y'; 2151 % Data.VarAttribute{3}.Role='vector_x'; 2152 % Data.VarAttribute{4}.Role='vector_y'; 2153 % Data.VarAttribute{5}.Role='errorflag'; 2154 % Data.X=reshape(xtable,[],1); 2155 % Data.Y=reshape(size(image1,1)-ytable+1,[],1); 2156 % Data.U=reshape(utable,[],1); 2157 % Data.V=reshape(-vtable,[],1); 2158 % Data.C=reshape(ctable,[],1); 2159 % Data.FF=reshape(~typevector,[],1); 2159 2160 errormsg=struct2nc(filecell.nc.civ1{ifile,j},Data); 2160 2161 if isempty(errormsg) … … 4289 4290 end 4290 4291 4291 4292 %------------------------------------------------------------------------ 4293 % --- civ using pivlab 4294 function Data=civ_uvmat(par_civ1) 4295 %------------------------------------------------------------------------ 4296 image1=imread(par_civ1.filename_ima_a); 4297 image2=imread(par_civ1.filename_ima_b); 4298 stepx=str2num(par_civ1.dx); 4299 stepy=str2num(par_civ1.dy); 4300 ibx2=ceil(str2num(par_civ1.ibx)/2); 4301 iby2=ceil(str2num(par_civ1.iby)/2); 4302 isx2=ceil(str2num(par_civ1.isx)/2); 4303 isy2=ceil(str2num(par_civ1.isy)/2); 4304 shiftx=str2num(par_civ1.shiftx); 4305 shifty=str2num(par_civ1.shifty); 4306 miniy=max(1+isy2-shifty,1+iby2); 4307 minix=max(1+isx2-shiftx,1+ibx2); 4308 maxiy=min(size(image1,1)-isy2-shifty,size(image1,1)-iby2); 4309 maxix=min(size(image1,2)-isx2-shiftx,size(image1,2)-ibx2); 4310 [GridX,GridY]=meshgrid(minix:stepx:maxix,miniy:stepy:maxiy); 4311 PointCoord(:,1)=reshape(GridX,[],1); 4312 PointCoord(:,2)=reshape(GridY,[],1); 4313 4314 % caluclate velocity data (y and v in indices, reverse to y component) 4315 [xtable ytable utable vtable ctable typevector] = pivlab (image1,image2,ibx2,iby2,isx2,isy2,shiftx,shifty,PointCoord, 1, []); 4316 Data.ListGlobalAttribute={'title','Time','Dt'}; 4317 Data.title='PIVlab'; 4318 Data.Time=str2double(par_civ1.T0); 4319 Data.Dt=str2double(par_civ1.Dt); 4320 Data.ListVarName={'X','Y','U','V','C','FF'};% cell array containing the names of the fields to record 4321 Data.VarDimName={'nbvec','nbvec','nbvec','nbvec','nbvec','nbvec'}; 4322 Data.VarAttribute{1}.Role='coord_x'; 4323 Data.VarAttribute{2}.Role='coord_y'; 4324 Data.VarAttribute{3}.Role='vector_x'; 4325 Data.VarAttribute{4}.Role='vector_y'; 4326 Data.VarAttribute{5}.Role='errorflag'; 4327 Data.X=reshape(xtable,[],1); 4328 Data.Y=reshape(size(image1,1)-ytable+1,[],1); 4329 Data.U=reshape(utable,[],1); 4330 Data.V=reshape(-vtable,[],1); 4331 Data.C=reshape(ctable,[],1); 4332 Data.FF=reshape(~typevector,[],1); 4292 4333 4293 4334 %------------------------------------------------------------------------ … … 4638 4679 Data.nx=[1 size(Data.A,2)]; 4639 4680 par_civ1=read_param_civ1(handles,filecell.ima1.civ1{1}); 4640 4641 stepx=str2num(par_civ1.dx); 4642 stepy=str2num(par_civ1.dy); 4643 ibx2=ceil(str2num(par_civ1.ibx)/2); 4644 iby2=ceil(str2num(par_civ1.iby)/2); 4645 isx2=ceil(str2num(par_civ1.isx)/2); 4646 isy2=ceil(str2num(par_civ1.isy)/2); 4647 shiftx=str2num(par_civ1.shiftx); 4648 shifty=str2num(par_civ1.shifty); 4649 % ibx=2*ibx2-1;%ibx and iby odd, reduced by 1 if even 4650 % iby=2*iby2-1; 4651 miniy=max(1+isy2-shifty,1+iby2); 4652 minix=max(1+isx2-shiftx,1+ibx2); 4653 maxiy=min(size(image1,1)-isy2-shifty,size(image1,1)-iby2); 4654 maxix=min(size(image1,2)-isx2-shiftx,size(image1,2)-ibx2); 4655 % maxix=stepx*(floor(size(image1_roi,2)/stepx))-(2*ibx2-2)+ibx2; 4656 [GridX,GridY]=meshgrid(miniy:stepy:maxiy,minix:stepx:maxix); 4657 PointCoord(:,1)=reshape(GridX,[],1); 4658 PointCoord(:,2)=reshape(GridY,[],1); 4659 hh=view_field(Data); 4660 set(0,'CurrentFigure',hh) 4661 plot(PointCoord(:,2),PointCoord(:,1),'+') 4662 ViewData=get(hh,'UserData'); 4681 par_civ1.filename_ima_a=filecell.ima1.civ1{1}; 4682 par_civ1.filename_ima_b=filecell.ima2.civ1{1}; 4683 par_civ1.T0=0; 4684 par_civ1.Dt=1; 4685 Data=civ_uvmat(par_civ1); 4686 % stepx=str2num(par_civ1.dx); 4687 % stepy=str2num(par_civ1.dy); 4688 % ibx2=ceil(str2num(par_civ1.ibx)/2); 4689 % iby2=ceil(str2num(par_civ1.iby)/2); 4690 % isx2=ceil(str2num(par_civ1.isx)/2); 4691 % isy2=ceil(str2num(par_civ1.isy)/2); 4692 % shiftx=str2num(par_civ1.shiftx); 4693 % shifty=str2num(par_civ1.shifty); 4694 % % ibx=2*ibx2-1;%ibx and iby odd, reduced by 1 if even 4695 % % iby=2*iby2-1; 4696 % miniy=max(1+isy2-shifty,1+iby2) 4697 % minix=max(1+isx2-shiftx,1+ibx2) 4698 % maxiy=min(size(Data.A,1)-isy2-shifty,size(Data.A,1)-iby2) 4699 % maxix=min(size(Data.A,2)-isx2-shiftx,size(Data.A,2)-ibx2) 4700 % % maxix=stepx*(floor(size(image1_roi,2)/stepx))-(2*ibx2-2)+ibx2; 4701 % [GridX,GridY]=meshgrid(minix:stepx:maxix,miniy:stepy:maxiy); 4702 % PointCoord(:,1)=reshape(GridX,[],1); 4703 % PointCoord(:,2)=reshape(GridY,[],1); 4704 Data.ListVarName=[Data.ListVarName {'ny','nx','A'}]; 4705 Data.VarDimName=[Data.VarDimName {'ny','nx',{'ny','nx'}}]; 4706 Data.A=imread(filecell.ima1.civ1{1}); 4707 Data.ny=[size(Data.A,1) 1]; 4708 Data.nx=[1 size(Data.A,2)]; 4709 hview_field=view_field(Data); 4710 set(0,'CurrentFigure',hview_field) 4711 hhview_field=guihandles(hview_field); 4712 set(hview_field,'CurrentAxes',hhview_field.axes3) 4713 %hpoints=line(PointCoord(:,1),PointCoord(:,2),'Color','y','LineStyle','.','Marker','*','LineWidth',4,'Tag','grid_points'); 4714 ViewData=get(hview_field,'UserData'); 4715 ViewData.CivHandle=handles.civ;% indicate the handle of the civ GUI in view_field 4663 4716 ViewData.axes3.B=imread(filecell.ima2.civ1{1});%store the second image in the UserData of the GUI view_field 4717 ViewData.axes3.X=Data.X; %keep the set of points in memeory 4718 ViewData.axes3.Y=Data.Y; 4719 set(hview_field,'UserData',ViewData) 4664 4720 corrfig=findobj(allchild(0),'tag','corrfig');% look for a current figure for image correlation display 4665 4721 if isempty(corrfig) … … 4669 4725 set(corrfig,'DeleteFcn',{@closeview_field})% 4670 4726 end 4671 set(hh,'UserData',ViewData)4672 4727 else 4673 4728 corrfig=findobj(allchild(0),'tag','corrfig');% look for a current figure for image correlation display
Note: See TracChangeset
for help on using the changeset viewer.