实现彩色图片灰度化的四种方法代码
在进行图片或图像数据分析时,灰度化是一项基本操作。本文将继续介绍四种彩色源图灰度化的方法代码,以实现图片的灰度化处理。
利用不同公式进行灰度化
除了常见的经验公式 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)
```
通过以上四种不同的灰度化方法,我们可以根据具体需求选择合适的处理方式。在处理不同场景下的图片时,灰度化方法的选择可以影响最终效果。因此,灵活运用不同的灰度化技术能够为图像处理带来更多可能性。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。