|
| 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 | +#Roberts算子 |
| 14 | +kernelx = np.array([[-1,0],[0,1]], dtype=int) |
| 15 | +kernely = np.array([[0,-1],[1,0]], 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 | +Roberts = cv2.addWeighted(absX,0.5,absY,0.5,0) |
| 22 | + |
| 23 | +#用来正常显示中文标签 |
| 24 | +plt.rcParams['font.sans-serif']=['SimHei'] |
| 25 | + |
| 26 | +#显示图形 |
| 27 | +titles = [u'原始图像', u'Roberts算子'] |
| 28 | +images = [lenna_img, Roberts] |
| 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() |
0 commit comments