fish.md 1.3 KB
Newer Older
F
feilong 已提交
1 2 3 4
# 浑水摸鱼

通过调整图像的直方图调整图像的整体细节,下图左图是浑水鱼,右边清澈鱼。

F
feilong 已提交
5 6
![](https://gitcode.net/csdn/skill_tree_git_md_linux/-/raw/master/data/1.OpenCV初阶/3.图像增强和滤波/2.直方图均衡化/fish_enhance.jpeg)
<br/>
F
feilong 已提交
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58

框架代码如下:

```python
import numpy as np
import cv2

if __name__ == '__main__':
    fish = cv2.imread('fish.jpeg', -1)

    # TODO(You): 请正确实现浑水摸鱼代码

    images = np.concatenate((fish, fish_enhance), axis=1)
    cv2.imwrite('fish_enhance.jpeg', images)
    cv2.imshow('fish_enhance', images)
    cv2.waitKey()
    cv2.destroyAllWindows()
```

直方图均衡化只能对灰度图使用。下面的实现正确的是?

## 答案

```python
b, g, r = cv2.split(fish)
bx, gx, rx = cv2.equalizeHist(b), cv2.equalizeHist(g), cv2.equalizeHist(r)
fish_enhance = cv2.merge((bx, gx, rx))
```

## 选项

### 没有分离灰度图

```python
fish_enhance = cv2.equalizeHist(fish)
```

### 参数不对

```python
b, g, r = cv2.split(fish)
bx, gx, rx = cv2.equalizeHist(b), cv2.equalizeHist(g), cv2.equalizeHist(r)
fish_enhance = cv2.merge(bx, gx, rx)
```

### 参数错误

```python
b, g, r = fish.split()
bx, gx, rx = cv2.equalizeHist(b), cv2.equalizeHist(g), cv2.equalizeHist(r)
fish_enhance = cv2.merge((bx, gx, rx))
```