seg, num_obj = skimage.measure.label(seg > 0, return_num=True) # Determine if the segmentation should be saved. if i == rand: mscl.save_seg( 'output/{0}_{1}_example_segmentation.png'.format(DATE, RBS), ph, seg) if num_obj > 0: # Compute the background information mean_bg = mscl.compute_mean_bg(ph, ff_ims[i]) mean_bg = mean_bg / ip_dist**2 exposure = mscl.scrape_metadata(metadata[i], return_date=False) # For shock experiments, link the markers. if EXP.lower() == 'shock': _markers = mscl.marker_parse(markers[i]) _df = mscl.link_markers(_markers, seg, ff_ims[i]) _df['flow_rate'] = FLOW_RATE _df.drop(['x_pos', 'y_pos', 'mask_label', 'label_cent_x', 'label_cent_y', 'dist'], axis=1, inplace=True) else: props = skimage.measure.regionprops(seg, ff_Ims[i]) intensity = [prop.mean_intensity / ip_dist**2 for prop in props] area = [prop.area * ip_dist**2 for prop in props] _df = pd.DataFrame(dict(intensity=intensity, area=area)) # Insert the other necessary information. _df['date'] = DATE _df['rbs'] = RBS _df['mean_bg'] = mean_bg
seg) if num_obj > 0: # Compute the background information mean_bg = mscl.compute_mean_bg(ph, ff_ims[i]) mean_bg = mean_bg / ip_dist**2 exposure = mscl.scrape_metadata(metadata[i], return_date=False) # For shock experiments, link the markers. if EXP.lower() == 'shock': for m in markers: m_pos = m.split('/')[-1].split('.')[0] ph_pos = tif_files[i].split('/')[-1].split('_')[-1].split( '.')[0] if m_pos == ph_pos: _markers = mscl.marker_parse(m) _df = mscl.link_markers(_markers, seg, ff_ims[i]) _df.drop([ 'x_pos', 'y_pos', 'mask_label', 'label_cent_x', 'label_cent_y', 'dist' ], axis=1, inplace=True) else: props = skimage.measure.regionprops(seg, ff_ims[i]) intensity = [ prop.mean_intensity / ip_dist**2 for prop in props ] area = [prop.area * ip_dist**2 for prop in props] _df = pd.DataFrame(dict(intensity=intensity, area=area)) _df['survival'] = False