Skip to content

Commit 5bb2f56

Browse files
committed
update code—_66_to_70
1 parent a3ed861 commit 5bb2f56

24 files changed

+161
-109
lines changed

README.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ gray = cv2.cvtColor(src, cv.COLOR_BGR2GRAY)
2626

2727
<div align=center><img src=https://i.loli.net/2019/05/22/5ce4b2ae1e7ce86434.png width=120> <img src=https://i.loli.net/2019/05/22/5ce4b2ae220a248459.png width=120></div>
2828

29-
30-
29+
30+
3131
***More opencv4.0 tutorials plese follow the learning road as below*** 👇👇👇
3232

3333
## Learning Road ⛳️
@@ -104,3 +104,8 @@ code_062 | [Dilation and Erosion](python/code_062/opencv_062.py) | ❣️
104104
code_063 | [Structuring Element](python/code_063/opencv_063.py) | ✔️
105105
code_064 | [Opening Transformation](python/code_064/opencv_064.py) | ✏️
106106
code_065 | [Closing Transformation](python/code_065/opencv_065.py) | ✏️
107+
code_066 | [Application of Opening and Closing Operations](python/code_066/opencv_066.py) | ✏️
108+
code_067 | [Top Hat](python/code_067/opencv_067.py) | ✔️
109+
code_068 | [Black Hat](python/code_068/opencv_068.py) | ✔️
110+
code_069 | [Morph Gradient](python/code_069/opencv_069.py) | ✔️
111+
code_070 | [Contour based on Morph Gradient](python/code_070/opencv_070.py) | ✏️

README_CN.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,3 +103,8 @@ code_062 | [膨胀和腐蚀](python/code_062/opencv_062.py) | ❣️
103103
code_063 | [结构元素](python/code_063/opencv_063.py) | ✔️
104104
code_064 | [开运算](python/code_064/opencv_064.py) | ✏️
105105
code_065 | [闭运算](python/code_065/opencv_065.py) | ✏️
106+
code_066 | [开闭运算的应用](python/code_066/opencv_066.py) | ✏️
107+
code_067 | [顶帽](python/code_067/opencv_067.py) | ✔️
108+
code_068 | [黑帽](python/code_068/opencv_068.py) | ✔️
109+
code_069 | [图像梯度](python/code_069/opencv_069.py) | ✔️
110+
code_070 | [基于梯度的轮廓发现](python/code_070/opencv_070.py) | ✏️

python/README_EN.md

Lines changed: 0 additions & 107 deletions
This file was deleted.

python/code_066/binary1.png

10.7 KB
Loading

python/code_066/binary2.png

1003 Bytes
Loading

python/code_066/close.png

2.18 KB
Loading

python/code_066/fill.png

56 KB
Loading

python/code_066/morph3.png

49.6 KB
Loading

python/code_066/opencv_066.py

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
import cv2 as cv
2+
import numpy as np
3+
4+
5+
def open_demo():
6+
src = cv.imread("fill.png")
7+
cv.namedWindow("input", cv.WINDOW_AUTOSIZE)
8+
cv.imshow("input", src)
9+
10+
# 图像二值化
11+
gray = cv.cvtColor(src, cv.COLOR_BGR2GRAY)
12+
ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY_INV | cv.THRESH_OTSU)
13+
cv.imwrite("binary1.png", binary)
14+
cv.imshow("binary1", binary)
15+
16+
# 开操作
17+
se1 = cv.getStructuringElement(cv.MORPH_RECT, (15, 1))
18+
binary = cv.morphologyEx(binary, cv.MORPH_OPEN, se1)
19+
cv.imshow("binary", binary)
20+
cv.imwrite("binary2.png", binary)
21+
22+
# 提取轮廓
23+
out, contours, hierarchy = cv.findContours(binary, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE)
24+
for c in range(len(contours)):
25+
x, y, w, h = cv.boundingRect(contours[c])
26+
y = y - 10
27+
h = 12
28+
cv.rectangle(src, (x, y), (x+w, y+h), (0, 0, 255), 1, 8, 0)
29+
cv.imshow("result", src)
30+
31+
32+
def close_demo():
33+
src = cv.imread("morph3.png")
34+
cv.namedWindow("input", cv.WINDOW_AUTOSIZE)
35+
cv.imshow("input", src)
36+
37+
# 图像二值化
38+
gray = cv.cvtColor(src, cv.COLOR_BGR2GRAY)
39+
ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY | cv.THRESH_OTSU)
40+
41+
# 闭操作
42+
se = cv.getStructuringElement(cv.MORPH_ELLIPSE, (15, 15), (-1, -1))
43+
binary = cv.morphologyEx(binary, cv.MORPH_CLOSE, se)
44+
cv.imwrite("close.png", binary)
45+
cv.imshow("close", binary)
46+
47+
#open_demo()
48+
close_demo()
49+
cv.waitKey(0)
50+
cv.destroyAllWindows()

python/code_067/binary2.png

1.78 KB
Loading

0 commit comments

Comments
 (0)