2016 - 2024

感恩一路有你

实现彩色图片灰度化的四种方法代码

浏览量:2347 时间:2024-03-03 16:26:22 作者:采采

在进行图片或图像数据分析时,灰度化是一项基本操作。本文将继续介绍四种彩色源图灰度化的方法代码,以实现图片的灰度化处理。

利用不同公式进行灰度化

除了常见的经验公式 Gray (R*30 G*59 B*11 50) / 100 和 Gray R*0.299 G*0.587 B*0.114 外,还可以尝试其他方式来进行灰度化处理。例如以下几种方法:

1. 灰度图:RGB

2. 最大值法:取 RGB 中的最大值作为灰度值

3. 绿色优先法:人眼对绿色最敏感,因此可将绿色通道作为灰度值

4. 自定义公式:Gray (R * 38 G * 75 B * 15) >> 7,使用移位操作提高计算速度

使用 RGB 求和平均灰度化

这种方法是将每个像素点的 RGB 值相加后取平均作为灰度值。代码示例如下:

```python

image ('', 1)

rows, cols, channel

result ((rows, cols, 3), np.uint8)

for i in range(rows):

for j in range(cols):

b, g, r image[i][j]

gray (int(b) int(g) int(r)) / 3

result[i,j] np.uint8(gray)

('gary5',result)

cv.waitKey(0)

```

使用最大值法灰度化

最大值法是将 RGB 中的最大值作为灰度值,代码示例如下:

```python

image ('', 1)

rows, cols, channel

result ((rows, cols, 3), np.uint8)

for i in range(rows):

for j in range(cols):

b, g, r image[i][j]

gray max(int(b), int(g), int(r))

result[i,j] np.uint8(gray)

('gary6',result)

cv.waitKey(0)

```

使用绿色通道灰度化

绿色通道灰度化方法将绿色通道作为灰度值,代码示例如下:

```python

image ('', 1)

rows, cols, channel

result ((rows, cols, 3), np.uint8)

for i in range(rows):

for j in range(cols):

b, g, r image[i][j]

gray max(int(b), 0, 0)

result[i,j] np.uint8(gray)

('gary7',result)

cv.waitKey(0)

```

使用自定义公式进行灰度化

采用移位操作的自定义公式 Gray (R * 38 G * 75 B * 15) >> 7 进行灰度化,可以提高计算速度。代码示例如下:

```python

image ('', 1)

rows, cols, channel

result ((rows, cols, 3), np.uint8)

for i in range(rows):

for j in range(cols):

b, g, r image[i][j]

gray (r * 38 g * 75 b * 15) >> 7

result[i,j] np.uint8(gray)

('gary8',result)

cv.waitKey(0)

```

通过以上四种不同的灰度化方法,我们可以根据具体需求选择合适的处理方式。在处理不同场景下的图片时,灰度化方法的选择可以影响最终效果。因此,灵活运用不同的灰度化技术能够为图像处理带来更多可能性。

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。