GitHub PushEvent at 2014-07-16 04:32:46
Repository: timestreamlib
Actor: kdmurray91
Payload: {"shas":[["9e704f7e76bb73e64b3ccbe91fe39dac39f778db","7ba17dc5493ccdfc6ee1399da483311d6432bbc5@gmail.com","fixed image rotation","Chuong Nguyen",true],["d06d4f0fc2c647be84b519b6eaf30bcf9491facd","7ba17dc5493ccdfc6ee1399da483311d6432bbc5@gmail.com","back to using corresponding tray images","Chuong Nguyen",true],["13a3b53a81913c9f342894f6de8521b8fad81d25","7ba17dc5493ccdfc6ee1399da483311d6432bbc5@gmail.com","added small rotation angle and round-corner tray selection","Chuong Nguyen",true],["32dc060e3fd2f3690bdaa4c05d6c6863320396fa","7ba17dc5493ccdfc6ee1399da483311d6432bbc5@gmail.com","added image intensity check to skip color correction if it's too low","Chuong Nguyen",true],["401000df370179c4c89605e79ef00e70195e81cc","7ba17dc5493ccdfc6ee1399da483311d6432bbc5@gmail.com","imporve image intensity check, add to yml's colorcorrect 'minIntensity: 15' to turn on this feature","Chuong Nguyen",true],["c9ea6125be11bcabfb748613765d66d7fb20a197","2ce3496a8e426a7d9de85cf275dcaca9521f0ce1@gmail.com","Bring config values from the yaml file\n\n* timestream/manipulate/pipecomponents.py (argNames): Be more explicit about\nwhat arguments we expect.\n* timestream/manipulate/plantSegmenter.py (__init__): maxIter, epsilon and\nattempts get initialized at object creation time.\n(segment): Stop passing any of the arguments within the\nPotSegmenter_KmeansSquare class.\n(calcKmeans): Include the class attributes for the k-means calculation.","Joel Andres Granados",true],["959e2886202060099055ca8e87ef968477ae0cbc","2ce3496a8e426a7d9de85cf275dcaca9521f0ce1@gmail.com","Check for segmenting method existance.\n\n* timestream/manipulate/pipecomponents.py (__init__): Raise a ValueError if\nthere is no method with the name of self.method.","Joel Andres Granados",true],["c5608c3360d30f8b514b3374255a83446a6b50b9","2ce3496a8e426a7d9de85cf275dcaca9521f0ce1@gmail.com","Use hints to default to previous mask\n\n* timestream/manipulate/plantSegmenter.py (mask): We pass the previous iph\nin the hints dictionary\n(segment): We use previous mask when we think that the current mask is not\nadequate.","Joel Andres Granados",true],["b3e3073f739475b14276f899d4e4d65c52dc1f60","2ce3496a8e426a7d9de85cf275dcaca9521f0ce1@gmail.com","Fix Bug. Make a copy of image when masking\n\nWe were chaning the main pot image. We now make a copy to put mask on a copy\nof the main image.\n* timestream/manipulate/pipecomponents.py (__call__): Use & instead of | when\nmasking\n* timestream/manipulate/plantSegmenter.py (maskedImage): Make a copy of\nself.si with self.si.copy()\n(show): Use & instead of |","Joel Andres Granados",true],["4029f9841085b8c46971c5ab4fc3c16ef26c445c","2ce3496a8e426a7d9de85cf275dcaca9521f0ce1@gmail.com","Make previous pots available through previous mat.\n\n* timestream/manipulate/pipecomponents.py (PlantExtractor.__call__): Get the\nprevious image pot matrix from context[\"ipm\"]. At the end make the ipm\navailable by replacing it in context with self.ipm.\n* timestream/manipulate/plantSegmenter.py (ImagePotMatrix.__init__): Add an\nargument ipmPrev that will allow for pot continuity. Use the ipmPrev to add\niphPrev to each ImagePotHandler instantiation.\n* util/pipeline_demo.py (context): Stop reinitilizing the context on every\nimage. This allows for pipecomponents to modify the context and re-use it on\npopsterior runs.","Joel Andres Granados",true],["4e05ea55f6247c8fa0ee17eee543c5eb0f8e36ac","2ce3496a8e426a7d9de85cf275dcaca9521f0ce1@gmail.com","Remove ImagePotHandler from the segment call\n\n* timestream/manipulate/plantSegmenter.py (segment): Instead of passing an\nImagePotHandler we pass an image. hints now contains the previous mask instead\nof the previous ImagePotHandler.","Joel Andres Granados",true],["867cea285da3c55a06754e09840ded082a0815da","2ce3496a8e426a7d9de85cf275dcaca9521f0ce1@gmail.com","Fix bug. Check to see if iphPrev is None\n\n* timestream/manipulate/plantSegmenter.py (mask): Only assign a previous mask\nfrom an existing previous pot.","Joel Andres Granados",true],["f29bfa39c19b012079c1351edbee54f0af331915","2ce3496a8e426a7d9de85cf275dcaca9521f0ce1@gmail.com","Allow ResultingImageWriter to be inserted anywhere.\n\nWhile ResultingImageWriter can be inserted anywhere, it will not be able to\ncreate different output timestreams yet. We still need to add a way to define\nmultiple timestreams and a way to use them from inside the components.\n* timestream/manipulate/pipecomponents.py (runExpects, runReturns): The\ncomponents that define their runReturns as [None] will be handled differently.\nThis allows for components to \"tap into\" the pipeline and gather information.\n(__call__): These new type of components must return the same args that they\nreceive.\n* timestream/manipulate/pipeline.py (__init__): We relax the checks on the new\ncomponent types. All the elements in the expecting list should be in the\nproviding list.","Joel Andres Granados",true],["1a2caf3affc21be20005503096db5014750b2c41","2ce3496a8e426a7d9de85cf275dcaca9521f0ce1@gmail.com","Add multiple output streams.\n\nIt is now possible to define and use different output streams from the yaml\nconfiguration file. Each output streams has a name wich can be used in the\nyaml config file.\n* timestream/manipulate/pipecomponents.py (ResultingImageWriter.argNames): We\nnow expect the user to tell us to which output stream we should write the\nimages.\n(__call__): The output steam is provided by the context.\n* util/pipeline_demo.py (yfile): Contains the information from the yaml file.\n(settings): Is yfile[\"pipeline\"]\n(outstreams): Is yfile[\"outstreams\"]\n(context): We now iterate through outstreams and create an output stream for\neach one defined in the yaml config.","Joel Andres Granados",true],["7e379c0b50dd238b411a7a433518dead03643bc9","2ce3496a8e426a7d9de85cf275dcaca9521f0ce1@gmail.com","Expect an numpy.ndarray at startup.\n\nThis moves away from what we want in the end. To pass around TimeStreamImages\nbut it is necessary to be able to seamlessly start at any point in the\npipeline. When we do move towards TimeStreamImage, we should move all the\npipecomponents at once.\n* timestream/manipulate/pipecomponents.py (runExpects): Expect a np.ndarray\ninstead of a TimeStreamImage.\n(__call__): Don't access the pixels attribute.\n* util/pipeline_demo.py (result): Initialize the pipeline with a np.ndarray.","Joel Andres Granados",true],["b2596361caf6c1a1876c9f3739cf9954f5bf7e5d","2ce3496a8e426a7d9de85cf275dcaca9521f0ce1@gmail.com","Add context to the pipeline init.\n\nThis allows to guess the output path for all pipeline components\n* timestream/manipulate/pipecomponents.py (__init__): Add context to all\ninitalization methods.\n(ResultingFeatureWriter_csv.__init__): Get the output dir from the context if\nthe user has not set one.\n* timestream/manipulate/pipeline.py (__init__): Add context to the init args.\nWe will pass the context to all the ImagePotHandlers.\n* util/pipeline_demo.py: Put the output directory in the context dictionary as\n\"outputroot\".","Joel Andres Granados",true],["6bef63bc595a5a223fd778be326e650ffa22d12d","7ba17dc5493ccdfc6ee1399da483311d6432bbc5@gmail.com","fixed error due to missing color card","Chuong Nguyen",true]],"size":17,"ref":"refs/heads/traitcapture_v0","head":"6bef63bc595a5a223fd778be326e650ffa22d12d"}