Skip to content

Commit 24ec9ec

Browse files
author
extronwang
committed
Fix the extra link
1 parent bc5b585 commit 24ec9ec

File tree

9 files changed

+11
-11
lines changed

9 files changed

+11
-11
lines changed

02-Basic-Element-Image/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ Nice,是不是很简单呐,再接再厉噢(●'◡'●)
8787

8888
1. 打开lena.jpg并显示,如果按下's',就保存图片为'lena_save.bmp',否则就结束程序。
8989

90-
2. Matplotlib是Python中常用的一个绘图库,请学习[番外篇:无损保存和Matplotlib使用](/opencv-python-extra-high-quality-save-and-using-matplotlib/)
90+
2. Matplotlib是Python中常用的一个绘图库,请学习[番外篇:无损保存和Matplotlib使用](/Extra-02-High-Quality-Save-and-Matplotlib/)
9191

9292
## 接口文档
9393

03-Open-Camera/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ while(capture.isOpened()):
105105

106106
## 练习
107107

108-
1. 请先阅读[番外篇:滑动条](/opencv-python-extra-trackbar/),然后实现一个可以拖动滑块播放视频的功能。(提示:需要用到 `cv2.CAP_PROP_FRAME_COUNT``cv2.CAP_PROP_POS_FRAMES`两个属性)。
108+
1. 请先阅读[番外篇:滑动条](/Extra-03-Trackbar/),然后实现一个可以拖动滑块播放视频的功能。(提示:需要用到 `cv2.CAP_PROP_FRAME_COUNT``cv2.CAP_PROP_POS_FRAMES`两个属性)。
109109

110110
## 接口文档
111111

06-Image-Thresholding/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ plt.show()
121121

122122
## 练习
123123

124-
1. Otsu阈值是一种高效的二值化算法,请阅读[番外篇:Otsu阈值法](/opencv-python-extra-otsu-thresholding/)
124+
1. Otsu阈值是一种高效的二值化算法,请阅读[番外篇:Otsu阈值法](/Extra-04-Otsu-Thresholding/)
125125

126126
## 接口文档
127127

07-Image-Geometric-Transformation/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
## 教程
1515

16-
> 图像的几何变换从原理上看主要包括两种:基于2×3矩阵的仿射变换(平移、缩放、旋转和翻转等)、基于3×3矩阵的透视变换,感兴趣的小伙伴可参考[番外篇:仿射变换与透视变换](/opencv-python-extra-warpaffine-warpperspective/)
16+
> 图像的几何变换从原理上看主要包括两种:基于2×3矩阵的仿射变换(平移、缩放、旋转和翻转等)、基于3×3矩阵的透视变换,感兴趣的小伙伴可参考[番外篇:仿射变换与透视变换](/Extra-05-Warpaffine-Warpperspective/)
1717
1818
### 缩放图片
1919

10-Smoothing-Images/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
### 滤波与模糊
1717

18-
> 推荐大家先阅读:[番外篇:卷积基础(图片边框)](/opencv-python-extra-padding-and-convolution/),有助于理解卷积和滤波的概念。
18+
> 推荐大家先阅读:[番外篇:卷积基础(图片边框)](/Extra-08-Padding-and-Convolution/),有助于理解卷积和滤波的概念。
1919
2020
关于滤波和模糊,很多人分不清,我来给大家理理(虽说如此,我后面也会混着用,,ԾㅂԾ,,):
2121

@@ -45,7 +45,7 @@ img = cv2.imread('lena.jpg')
4545
blur = cv2.blur(img, (3, 3)) # 均值模糊
4646
```
4747

48-
> 所有的滤波函数都有一个可选参数borderType,这个参数就是[番外篇:卷积基础(图片边框)](/opencv-python-extra-padding-and-convolution/)中所说的边框填充方式。
48+
> 所有的滤波函数都有一个可选参数borderType,这个参数就是[番外篇:卷积基础(图片边框)](/Extra-08-Padding-and-Convolution/)中所说的边框填充方式。
4949
5050
### 方框滤波
5151

11-Edge-Detection/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ cv2.waitKey(0)
3232

3333
`cv2.Canny()`进行边缘检测,参数2、3表示最低、高阈值,下面来解释下具体原理。
3434

35-
> 经验之谈:之前我们用低通滤波的方式模糊了图片,那反过来,想得到物体的边缘,就需要用到高通滤波。推荐先阅读:[番外篇:图像梯度](/opencv-python-extra-image-gradients/)
35+
> 经验之谈:之前我们用低通滤波的方式模糊了图片,那反过来,想得到物体的边缘,就需要用到高通滤波。推荐先阅读:[番外篇:图像梯度](/Extra-09-Image-Gradients/)
3636
3737
### Canny边缘检测
3838

@@ -92,7 +92,7 @@ cv2.imshow('canny', np.hstack((img, thresh, edges)))
9292
cv2.waitKey(0)
9393
```
9494

95-
代码中我用了[番外篇:Otsu阈值法](/opencv-python-extra-otsu-thresholding/)中的自动阈值分割,如果你不太了解,大可以使用传统的方法,不过如果是下面这种图片,推荐用Otsu阈值法。另外Python中某个值不用的话,就写个下划线'_'。
95+
代码中我用了[番外篇:Otsu阈值法](/Extra-04-Otsu-Thresholding/)中的自动阈值分割,如果你不太了解,大可以使用传统的方法,不过如果是下面这种图片,推荐用Otsu阈值法。另外Python中某个值不用的话,就写个下划线'_'。
9696

9797
![](http://blog.codec.wang/cv2_canny_edge_detection_threshold.jpg)
9898

13-Contours/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ print(len(contours)) # 结果应该为2
4747
- 参数3:轮廓的近似方法。比如对于一条直线,我们可以存储该直线的所有像素点,也可以只存储起点和终点。使用cv2.CHAIN_APPROX_SIMPLE就表示用尽可能少的像素点表示轮廓。更多请参考:[ContourApproximationModes](https://docs.opencv.org/4.0.0/d3/dc0/group__imgproc__shape.html#ga4303f45752694956374734a03c54d5ff)
4848
- 简便起见,这两个参数也可以直接用真值3和2表示。
4949

50-
函数有3个返回值,image还是原来的二值化图片,hierarchy是轮廓间的层级关系([番外篇:轮廓层级](/opencv-python-extra-contours-hierarchy/)),这两个暂时不用理会。我们主要看contours,它就是找到的轮廓了,以数组形式存储,记录了每条轮廓的所有像素点的坐标(x,y)。
50+
函数有3个返回值,image还是原来的二值化图片,hierarchy是轮廓间的层级关系([番外篇:轮廓层级](/Extra-10-Contours-Hierarchy/)),这两个暂时不用理会。我们主要看contours,它就是找到的轮廓了,以数组形式存储,记录了每条轮廓的所有像素点的坐标(x,y)。
5151

5252
![](http://blog.codec.wang/cv2_find_contours_contours.jpg)
5353

15-Histograms/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ hist = cv2.calcHist([img], [0], None, [256], [0, 256]) # 性能:0.025288 s
5757
hist, bins = np.histogram(img.ravel(), 256, [0, 256]) # 性能:0.020628 s
5858
```
5959

60-
> 经验之谈:Numpy中还有一种更高效的方式:(还记得怎么评估性能吗:[番外篇:代码性能优化](/opencv-python-extra-code-optimization/)
60+
> 经验之谈:Numpy中还有一种更高效的方式:(还记得怎么评估性能吗:[番外篇:代码性能优化](/Extra-01-Code-Optimization/)
6161
6262
```python
6363
hist = np.bincount(img.ravel(), minlength=256) # 性能:0.003163 s

Extra-09-Image-Gradients/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ $$
4646

4747
![垂直和水平边缘提取](http://blog.codec.wang/cv2_horizen_vertical_edge_detection.jpg)
4848

49-
> 还记得滤波函数`cv2.filter2D()`吗?([番外篇:卷积基础](/opencv-python-extra-padding-and-convolution/))我们来手动实现上面的功能:
49+
> 还记得滤波函数`cv2.filter2D()`吗?([番外篇:卷积基础](/Extra-08-Padding-and-Convolution/))我们来手动实现上面的功能:
5050
5151
```python
5252
img = cv2.imread('sudoku.jpg', 0)

0 commit comments

Comments
 (0)