max(bbox_heights) + 2 * padding) # make it square (apparently avconv doesn't work correctly with arbitrary frame size...) win_size = (max(win_size), max(win_size)) ### centroids cell_centers = np.array([regionprops(mask)[0].centroid for mask in masks]) smooth_cell_centers = smooth_2D_trajectory(cell_centers) ### extract windows and put into big array windows = np.empty((len(frames), win_size[0], win_size[1])) for frame_num, (frame, center, mask) in enumerate(zip(frames, smooth_cell_centers, masks)): # make boundary bright boundary = find_boundaries(mask) frame += 0.5 * frame.max() * boundary # extract window centered on mask centroid i, j = int(round(center[0])), int(round(center[1])) ista, jsta = i - win_size[0] / 2, j - win_size[1] / 2 iend, jend = ista + win_size[0], jsta + win_size[1] win = frame[ista:iend, jsta:jend] windows[frame_num, :, :] = correct_orientation(win) # save to file print 'Saving movie to %s.' % out_fn write_video(windows, out_fn)
for frame_num, (frame, boundary_pts) in enumerate(zip(frames, all_boundary_pts)): boundary_x, boundary_y = interpolate_boundary_pts(boundary_pts) mask = measure.grid_points_in_poly(frame.shape, boundary_pts) center = measure.regionprops(mask)[0].centroid implot.set_data(frame) boundary_plot.set_data(boundary_y, boundary_x) boundary_pts_plot.set_data(boundary_pts[:, 1], boundary_pts[:, 0]) center_point.set_data(center[1], center[0]) plt.title('frame %i' % (frame_num + 1)) fig.canvas.draw() plt.ioff() plt.show() ### save to file if out_fn: # cell_label = re.findall(r'\d+', boundaries_fn)[0] movie_frames = np.empty_like(frames) for frame_num, (frame, boundary_pts) in enumerate( zip(frames.copy(), all_boundary_pts)): mask = measure.grid_points_in_poly(frame.shape, boundary_pts) boundary = find_boundaries(mask) frame += 0.5 * frame.max() * boundary movie_frames[frame_num, :, :] = correct_orientation(frame) # fn = 'cell%i_visualization.avi' % cell_label # print 'Saving visualization to', fn write_video(movie_frames, out_fn)
win_size = (max(win_size), max(win_size)) ### centroids cell_centers = np.array([regionprops(mask)[0].centroid for mask in masks]) smooth_cell_centers = smooth_2D_trajectory(cell_centers) ### extract windows and put into big array windows = np.empty((len(frames), win_size[0], win_size[1])) for frame_num, (frame, center, mask) in enumerate(zip(frames, smooth_cell_centers, masks)): # make boundary bright boundary = find_boundaries(mask) frame += 0.5*frame.max()*boundary # extract window centered on mask centroid i, j = int(round(center[0])), int(round(center[1])) ista, jsta = i-win_size[0]/2, j-win_size[1]/2 iend, jend = ista+win_size[0], jsta+win_size[1] win = frame[ista:iend, jsta:jend] windows[frame_num,:,:] = correct_orientation(win) # save to file print 'Saving movie to %s.' % out_fn write_video(windows, out_fn)
for frame_num, (frame, boundary_pts) in enumerate(zip(frames, all_boundary_pts)): boundary_x, boundary_y = interpolate_boundary_pts(boundary_pts) mask = measure.grid_points_in_poly(frame.shape, boundary_pts) center = measure.regionprops(mask)[0].centroid implot.set_data(frame) boundary_plot.set_data(boundary_y, boundary_x) boundary_pts_plot.set_data(boundary_pts[:,1], boundary_pts[:,0]) center_point.set_data(center[1], center[0]) plt.title('frame %i' % (frame_num+1)) fig.canvas.draw() plt.ioff() plt.show() ### save to file if out_fn: # cell_label = re.findall(r'\d+', boundaries_fn)[0] movie_frames = np.empty_like(frames) for frame_num, (frame, boundary_pts) in enumerate(zip(frames.copy(), all_boundary_pts)): mask = measure.grid_points_in_poly(frame.shape, boundary_pts) boundary = find_boundaries(mask) frame += 0.5*frame.max()*boundary movie_frames[frame_num,:,:] = correct_orientation(frame) # fn = 'cell%i_visualization.avi' % cell_label # print 'Saving visualization to', fn write_video(movie_frames, out_fn)