灰度级分层(一些基本的灰度变换函数)基本原理及Python实现

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

 

posted @ 2019-08-04 09:43  iwuqing  阅读(1682)  评论(0编辑  收藏  举报