Skip to content

Commit bba0945

Browse files
authored
Add files via upload
1 parent 962cc96 commit bba0945

4 files changed

Lines changed: 102 additions & 0 deletions

File tree

blog18-Canny/Lena.png

222 KB
Loading

blog18-Canny/blog18-image02.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# -*- coding: utf-8 -*-
2+
import cv2
3+
import numpy as np
4+
import matplotlib.pyplot as plt
5+
6+
#读取图像
7+
img = cv2.imread('lena.png')
8+
lenna_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
9+
10+
#灰度化处理图像
11+
grayImage = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
12+
13+
#高斯滤波降噪
14+
gaussian = cv2.GaussianBlur(grayImage, (3,3), 0)
15+
16+
#Canny算子
17+
Canny = cv2.Canny(gaussian, 50, 150)
18+
19+
#用来正常显示中文标签
20+
plt.rcParams['font.sans-serif']=['SimHei']
21+
22+
#显示图形
23+
titles = [u'原始图像', u'Canny算子']
24+
images = [lenna_img, Canny]
25+
for i in xrange(2):
26+
plt.subplot(1,2,i+1), plt.imshow(images[i], 'gray')
27+
plt.title(titles[i])
28+
plt.xticks([]),plt.yticks([])
29+
plt.show()

blog18-Canny/blog18-image03.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# -*- coding: utf-8 -*-
2+
import cv2
3+
import numpy as np
4+
import matplotlib.pyplot as plt
5+
6+
#读取图像
7+
img = cv2.imread('lena.png')
8+
lenna_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
9+
10+
#灰度化处理图像
11+
grayImage = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
12+
13+
#先通过高斯滤波降噪
14+
gaussian = cv2.GaussianBlur(grayImage, (3,3), 0)
15+
16+
#再通过拉普拉斯算子做边缘检测
17+
dst = cv2.Laplacian(gaussian, cv2.CV_16S, ksize = 3)
18+
LOG = cv2.convertScaleAbs(dst)
19+
20+
#用来正常显示中文标签
21+
plt.rcParams['font.sans-serif']=['SimHei']
22+
23+
#显示图形
24+
titles = [u'原始图像', u'LOG算子']
25+
images = [lenna_img, LOG]
26+
for i in xrange(2):
27+
plt.subplot(1,2,i+1), plt.imshow(images[i], 'gray')
28+
plt.title(titles[i])
29+
plt.xticks([]),plt.yticks([])
30+
plt.show()

blog18-Canny/blog18-image04.py

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# -*- coding: utf-8 -*-
2+
import cv2
3+
import numpy as np
4+
import matplotlib.pyplot as plt
5+
6+
#读取图像
7+
img = cv2.imread('lena.png')
8+
lenna_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
9+
10+
#灰度化处理图像
11+
grayImage = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
12+
13+
#高斯滤波
14+
gaussianBlur = cv2.GaussianBlur(grayImage, (3,3), 0)
15+
16+
#阈值处理
17+
ret, binary = cv2.threshold(gaussianBlur, 127, 255, cv2.THRESH_BINARY)
18+
19+
#Scharr算子
20+
x = cv2.Scharr(grayImage, cv2.CV_32F, 1, 0) #X方向
21+
y = cv2.Scharr(grayImage, cv2.CV_32F, 0, 1) #Y方向
22+
absX = cv2.convertScaleAbs(x)
23+
absY = cv2.convertScaleAbs(y)
24+
Scharr = cv2.addWeighted(absX, 0.5, absY, 0.5, 0)
25+
26+
#Canny算子
27+
gaussian = cv2.GaussianBlur(grayImage, (3,3), 0) #高斯滤波降噪
28+
Canny = cv2.Canny(gaussian, 50, 150)
29+
30+
#LOG算子
31+
gaussian = cv2.GaussianBlur(grayImage, (3,3), 0) #先通过高斯滤波降噪
32+
dst = cv2.Laplacian(gaussian, cv2.CV_16S, ksize = 3) #再通过拉普拉斯算子做边缘检测
33+
LOG = cv2.convertScaleAbs(dst)
34+
35+
#效果图
36+
titles = ['Source Image', 'Gray Image', 'Binary Image',
37+
'Scharr Image','Canny Image', 'LOG Image']
38+
images = [lenna_img, grayImage, binary, Scharr, Canny, LOG]
39+
for i in np.arange(6):
40+
plt.subplot(2,3,i+1),plt.imshow(images[i],'gray')
41+
plt.title(titles[i])
42+
plt.xticks([]),plt.yticks([])
43+
plt.show()

0 commit comments

Comments
 (0)