PANorama pipeline. PANorama generates a skeletonized panicle image based on the exact morphology of the panicle. A, Image capture, skeletonization, processing, and phenotype extraction are controlled by five scripts. B, Panicle images from different stages of the pipeline. Numbers correspond to the steps listed in A. 1, A panicle image captured and saved using GetPictures.py. 2, Execution of CreateSkeletons.py batch generates skeletons for every panicle image. 3, A _skel.jpg version of the original panicle image generated by CreateSkeletons.py. The skeleton is depicted in yellow, superimposed over the panicle axes. Using the DefineMainAxis.py GUI, three developmental checkpoints are selected using a mouse: EP (red circle), IMAP (orange circle), and FMAP (blue circle). 4, The _skel.jpg image after ExtractInfo.py has been executed. Using the three developmental checkpoints selected, ExtractInfo.py labels the skeleton and defines axes: exsertion axis (pink), RL (orange), primary branches (blue), and secondary and tertiary axes (yellow). Branches are collapsed into internodes during this step (red arrow). Bars = 500 pixels.