實現(xiàn)彩色圖片灰度化的四種方法代碼
在進(jìn)行圖片或圖像數(shù)據(jù)分析時,灰度化是一項基本操作。本文將繼續(xù)介紹四種彩色源圖灰度化的方法代碼,以實現(xiàn)圖片的灰度化處理。 利用不同公式進(jìn)行灰度化除了常見的經(jīng)驗公式 Gray (R*30 G*59
在進(jìn)行圖片或圖像數(shù)據(jù)分析時,灰度化是一項基本操作。本文將繼續(xù)介紹四種彩色源圖灰度化的方法代碼,以實現(xiàn)圖片的灰度化處理。
利用不同公式進(jìn)行灰度化
除了常見的經(jīng)驗公式 Gray (R*30 G*59 B*11 50) / 100 和 Gray R*0.299 G*0.587 B*0.114 外,還可以嘗試其他方式來進(jìn)行灰度化處理。例如以下幾種方法:
1. 灰度圖:RGB
2. 最大值法:取 RGB 中的最大值作為灰度值
3. 綠色優(yōu)先法:人眼對綠色最敏感,因此可將綠色通道作為灰度值
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)
```
使用自定義公式進(jìn)行灰度化
采用移位操作的自定義公式 Gray (R * 38 G * 75 B * 15) >> 7 進(jìn)行灰度化,可以提高計算速度。代碼示例如下:
```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)
```
通過以上四種不同的灰度化方法,我們可以根據(jù)具體需求選擇合適的處理方式。在處理不同場景下的圖片時,灰度化方法的選擇可以影響最終效果。因此,靈活運(yùn)用不同的灰度化技術(shù)能夠為圖像處理帶來更多可能性。