1. 基本原理
灰度级分层通常用于突出感兴趣的特定灰度范围内的亮度。灰度级分层有两大基本方法。
- 将感兴趣的灰度范围内的值显示为一个值(比如0),而其他范围的值为另外一个值(255)。
- 将感兴趣的灰度范围内的值显示为一个值(比如0),而其他范围的值不变。
2. 测试结果
图源自skimage
3. 代码
1 def grayscale_layer(input_image, spotlight_range_min, spotlight_range_max, means): 2 ''' 3 灰度级分层 4 :param input_image: 原图像 5 :param spotlight_range_min: 所突出的灰度级范围最小值 6 :param spotlight_range_max: 所突出的灰度级范围最大值 7 :param means: 分层方式(1,2) 8 :return: 灰度级分层后的图像 9 ''' 10 input_image_cp = np.copy(input_image) # 输入图像的副本 11 12 if means == 1: # 方式一(突出指定范围内255,并且变暗非范围内0) 13 input_image_cp = np.where((input_image_cp >= spotlight_range_min) & (input_image_cp <= spotlight_range_max), 255, 0) 14 elif means == 2: # 方式二(仅突出指定范围内255) 15 input_image_cp[np.where((input_image_cp >= spotlight_range_min) & (input_image_cp <= spotlight_range_max))] = 255 16 else: 17 print("please enter the number of means from 1 to 2") 18 return 19 20 output_image = input_image_cp 21 22 return output_image