Skip to content

Commit f409d55

Browse files
authored
Add files via upload
1 parent 63aac69 commit f409d55

5 files changed

Lines changed: 146 additions & 0 deletions

File tree

blog17-sobel/Lena.png

222 KB
Loading

blog17-sobel/blog17-image02.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
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+
#Prewitt算子
14+
kernelx = np.array([[1,1,1],[0,0,0],[-1,-1,-1]],dtype=int)
15+
kernely = np.array([[-1,0,1],[-1,0,1],[-1,0,1]],dtype=int)
16+
x = cv2.filter2D(grayImage, cv2.CV_16S, kernelx)
17+
y = cv2.filter2D(grayImage, cv2.CV_16S, kernely)
18+
#转uint8
19+
absX = cv2.convertScaleAbs(x)
20+
absY = cv2.convertScaleAbs(y)
21+
Prewitt = cv2.addWeighted(absX,0.5,absY,0.5,0)
22+
23+
#用来正常显示中文标签
24+
plt.rcParams['font.sans-serif']=['SimHei']
25+
26+
#显示图形
27+
titles = [u'原始图像', u'Prewitt算子']
28+
images = [lenna_img, Prewitt]
29+
for i in xrange(2):
30+
plt.subplot(1,2,i+1), plt.imshow(images[i], 'gray')
31+
plt.title(titles[i])
32+
plt.xticks([]),plt.yticks([])
33+
plt.show()

blog17-sobel/blog17-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+
#Sobel算子
14+
x = cv2.Sobel(grayImage, cv2.CV_16S, 1, 0) #对x求一阶导
15+
y = cv2.Sobel(grayImage, cv2.CV_16S, 0, 1) #对y求一阶导
16+
absX = cv2.convertScaleAbs(x)
17+
absY = cv2.convertScaleAbs(y)
18+
Sobel = cv2.addWeighted(absX, 0.5, absY, 0.5, 0)
19+
20+
#用来正常显示中文标签
21+
plt.rcParams['font.sans-serif']=['SimHei']
22+
23+
#显示图形
24+
titles = [u'原始图像', u'Sobel算子']
25+
images = [lenna_img, Sobel]
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()

blog17-sobel/blog17-image04.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
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+
dst = cv2.Laplacian(grayImage, cv2.CV_16S, ksize = 3)
15+
Laplacian = cv2.convertScaleAbs(dst)
16+
17+
#用来正常显示中文标签
18+
plt.rcParams['font.sans-serif']=['SimHei']
19+
20+
#显示图形
21+
titles = [u'原始图像', u'Laplacian算子']
22+
images = [lenna_img, Laplacian]
23+
for i in xrange(2):
24+
plt.subplot(1,2,i+1), plt.imshow(images[i], 'gray')
25+
plt.title(titles[i])
26+
plt.xticks([]),plt.yticks([])
27+
plt.show()

blog17-sobel/blog17-image05.py

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
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+
#Roberts算子
20+
kernelx = np.array([[-1,0],[0,1]], dtype=int)
21+
kernely = np.array([[0,-1],[1,0]], dtype=int)
22+
x = cv2.filter2D(binary, cv2.CV_16S, kernelx)
23+
y = cv2.filter2D(binary, cv2.CV_16S, kernely)
24+
absX = cv2.convertScaleAbs(x)
25+
absY = cv2.convertScaleAbs(y)
26+
Roberts = cv2.addWeighted(absX, 0.5, absY, 0.5, 0)
27+
28+
#Prewitt算子
29+
kernelx = np.array([[1,1,1],[0,0,0],[-1,-1,-1]], dtype=int)
30+
kernely = np.array([[-1,0,1],[-1,0,1],[-1,0,1]], dtype=int)
31+
x = cv2.filter2D(binary, cv2.CV_16S, kernelx)
32+
y = cv2.filter2D(binary, cv2.CV_16S, kernely)
33+
absX = cv2.convertScaleAbs(x)
34+
absY = cv2.convertScaleAbs(y)
35+
Prewitt = cv2.addWeighted(absX,0.5,absY,0.5,0)
36+
37+
#Sobel算子
38+
x = cv2.Sobel(binary, cv2.CV_16S, 1, 0)
39+
y = cv2.Sobel(binary, cv2.CV_16S, 0, 1)
40+
absX = cv2.convertScaleAbs(x)
41+
absY = cv2.convertScaleAbs(y)
42+
Sobel = cv2.addWeighted(absX, 0.5, absY, 0.5, 0)
43+
44+
#拉普拉斯算法
45+
dst = cv2.Laplacian(binary, cv2.CV_16S, ksize = 3)
46+
Laplacian = cv2.convertScaleAbs(dst)
47+
48+
#效果图
49+
titles = ['Source Image', 'Binary Image', 'Roberts Image',
50+
'Prewitt Image','Sobel Image', 'Laplacian Image']
51+
images = [lenna_img, binary, Roberts, Prewitt, Sobel, Laplacian]
52+
for i in np.arange(6):
53+
plt.subplot(2,3,i+1),plt.imshow(images[i],'gray')
54+
plt.title(titles[i])
55+
plt.xticks([]),plt.yticks([])
56+
plt.show()

0 commit comments

Comments
 (0)