fixed bug that caused IJHyperstack.getimage to be able to modify the hyperstack instance
This commit is contained in:
		
							parent
							
								
									608fefce0a
								
							
						
					
					
						commit
						c42972736f
					
				|  | @ -30,6 +30,19 @@ PIXEL_TYPE_TO_CV_PIXEL_TYPE = { | |||
|     PixelType.F32: opencv_core.CV_32F, | ||||
| } | ||||
| 
 | ||||
| def clone_processor(src_processor, clone_pixel_type): | ||||
|     """ | ||||
|     :param Processor processor: | ||||
|     :param PixelType clone_pixel_type: | ||||
|     :rtype Processor: | ||||
|     """ | ||||
|     clone_processor = {  | ||||
|         PixelType.U8: src_processor.convertToByteProcessor(), | ||||
|         PixelType.U16: src_processor.convertToShortProcessor(), | ||||
|         PixelType.F32: src_processor.convertToFloatProcessor(), | ||||
|          }[clone_pixel_type] | ||||
|     return clone_processor | ||||
| 
 | ||||
| class IJImage(IImage): | ||||
| 
 | ||||
|     def __init__(self, image_engine, ij_image=None, width=None, height=None, pixel_type=None): | ||||
|  | @ -50,17 +63,13 @@ class IJImage(IImage): | |||
|             stack_name = '' | ||||
|             self.ij_image = IJ.createHyperStack(stack_name, width, height, 1, 1, 1, PixelType.get_num_bits(pixel_type)) | ||||
| 
 | ||||
| 
 | ||||
|     def clone(self, clone_pixel_type=None): | ||||
|         if clone_pixel_type == None: | ||||
|             clone_pixel_type = self.get_pixel_type() | ||||
|         copy = IJImage(self.image_engine, width=self.get_width(), height=self.get_height(), pixel_type=clone_pixel_type) | ||||
|         src_processor = self.ij_image.getProcessor() | ||||
|         clone_processor = {  | ||||
|             PixelType.U8: src_processor.convertToByteProcessor(), | ||||
|             PixelType.U16: src_processor.convertToShortProcessor(), | ||||
|             PixelType.F32: src_processor.convertToFloatProcessor(), | ||||
|              }[clone_pixel_type] | ||||
|         copy.ij_image.setProcessor( clone_processor ) | ||||
|         copy.ij_image.setProcessor( clone_processor(src_processor, clone_pixel_type) ) | ||||
|         assert copy.get_pixel_type() == clone_pixel_type | ||||
|         return copy | ||||
| 
 | ||||
|  | @ -129,7 +138,7 @@ class IJHyperStack(IHyperStack): | |||
|         self.hyperstack.setPositionWithoutUpdate(channel_index + 1, slice_index + 1, frame_index + 1) | ||||
|         stack_name = ''  | ||||
|         image_plus = IJ.createHyperStack(stack_name, self.get_width(), self.get_height(), 1, 1, 1, PixelType.get_num_bits(self.get_pixel_type())) | ||||
|         image_plus.setProcessor(self.hyperstack.getProcessor()) | ||||
|         image_plus.setProcessor(clone_processor(self.hyperstack.getProcessor(), self.get_pixel_type())) | ||||
|         ij_image = IJImage(self.image_engine, image_plus) | ||||
|         return ij_image | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue