Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- %% Create Skewed Image - All of These Are Knowns
- rows = 1:size(frame, 1);
- cols = 1:size(frame, 2);
- lat_grid = zeros(size(frame));
- lon_grid = zeros(size(frame));
- for r = 1:numel(rows)
- for c = 1:numel(cols)
- lat_grid(r,c) = 0 + .001*rows(r) + 1e-3*cols(c) + 1e-6 * rows(r).^2;
- lon_grid(r,c) = 0 + .001*cols(c) + 1e-3*rows(r) + 1e-6 * cols(c).^2;
- end
- end
- h = figure; surf(lon_grid, lat_grid, frame, 'edgecolor','none'), view([0,90]),
- colormap(gray(256))
- set(gca, 'ydir', 'reverse')
- ylabel('Latitude (deg)')
- xlabel('Longitude (deg)')
- hold on
- filename = 'testAnimated.gif';
- %% Create image in target grid
- target_lat_array = 0:0.1:(max(lat_grid(:))+0.1);
- target_lon_array = 0:0.1:(max(lon_grid(:))+0.1);
- [target_lon_grid, target_lat_grid] = meshgrid(target_lon_array, target_lat_array);
- resampled_frame = zeros(size(target_lon_grid));
- n = 0;
- for r = 2:size(target_lat_grid, 1)
- for c = 2:size(target_lon_grid, 2)
- n = n + 1;
- mask = ((lon_grid > target_lon_grid(r, c-1)) & (lon_grid < target_lon_grid(r, c))) & ((lat_grid > target_lat_grid(r-1, c)) & (lat_grid < target_lat_grid(r, c)));
- ph = patch(...
- [target_lon_grid(r, c-1), target_lon_grid(r, c-1), target_lon_grid(r, c), target_lon_grid(r, c)],...
- [target_lat_grid(r-1, c), target_lat_grid(r, c), target_lat_grid(r, c), target_lat_grid(r-1, c)],...
- [1e4, 1e4, 1e4, 1e4], [1,0,0,0.5]);
- if ~any(mask(:))
- delete(ph)
- continue
- end
- % Write to the GIF File
- im = frame2im(getframe(h));
- [imind,cm] = rgb2ind(im,256);
- if n == 1
- imwrite(imind,cm,filename,'gif', 'Loopcount',inf);
- else
- imwrite(imind,cm,filename,'gif','WriteMode','append');
- end
- delete(ph)
- resampled_frame(r-1, c-1) = mean(frame(mask));
- end
- end
- figure, imagesc(target_lon_array, target_lat_array, resampled_frame),
- colormap(gray(256)), axis image
- ylabel('Latitude (deg)')
- xlabel('Longitude (deg)')
Add Comment
Please, Sign In to add comment