import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = ['sans-serif']
plt.rcParams['font.sans-serif'] = ['SimHei']
D:\Anaconda\AZWZ\lib\site-packages\numpy\_distributor_init.py:30: UserWarning: loaded more than 1 DLL from .libs:
D:\Anaconda\AZWZ\lib\site-packages\numpy\.libs\libopenblas.NOIJJG62EMASZI6NYURL6JBKM4EVBGM7.gfortran-win_amd64.dll
D:\Anaconda\AZWZ\lib\site-packages\numpy\.libs\libopenblas.WCDJNK7YVMPZQ2ME2ZZHJJRJ3JIKNDB7.gfortran-win_amd64.dll
warnings.warn("loaded more than 1 DLL from .libs:\n%s" %
rain = cv.imread('img/rain.jpg')[:500,:500,:]
view = cv.imread('img/view.jpg')
letter = cv.imread('img/letter.png')
plt.figure()
plt.subplot(1,3,1)
m1 = plt.imshow(rain[:,:,::-1])
plt.title('rain.jpg')
plt.subplot(1,3,2)
m2 = plt.imshow(view[:,:,::-1])
plt.title('view.jpg')
plt.subplot(1,3,3)
m2 = plt.imshow(letter[:,:,::-1])
plt.title('letter.jpg')
Text(0.5, 1.0, 'letter.jpg')
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dIQEKGsZ-1637754238885)(output_2_1.png)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dIQEKGsZ-1637754238885)(output_2_1.png)]](https://ucc.alicdn.com/images/user-upload-01/97f3d388f61041ba8417a5bd0921d65e.png?x-oss-process=image/resize,w_1400/format,webp)
1.腐蚀与膨胀
kenel = np.ones((5,5),np.uint8)
kenel
array([[1, 1, 1, 1, 1],
[1, 1, 1, 1, 1],
[1, 1, 1, 1, 1],
[1, 1, 1, 1, 1],
[1, 1, 1, 1, 1]], dtype=uint8)
img1 = cv.erode(letter,kenel)
img2 = cv.dilate(letter,kenel)
plt.figure()
plt.subplot(1,3,1)
m1 = plt.imshow(letter[:,:,::-1])
plt.title('原图')
plt.subplot(1,3,2)
m2 = plt.imshow(img1[:,:,::-1])
plt.title('腐蚀')
plt.subplot(1,3,3)
m3 = plt.imshow(img2[:,:,::-1])
plt.title('膨胀')
Text(0.5, 1.0, '膨胀')
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uFue5OKs-1637754238887)(output_6_1.png)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uFue5OKs-1637754238887)(output_6_1.png)]](https://ucc.alicdn.com/images/user-upload-01/b717e50d51c44ce5bb44c0494368e79f.png?x-oss-process=image/resize,w_1400/format,webp)
2.开闭运算
letter_open = cv.imread('img/letter_open.png')
letter_close = cv.imread('img/letter_close.png')
kenel = np.ones((10,10),np.uint8)
kenel
array([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]], dtype=uint8)
cv_open = cv.morphologyEx(letter_open,cv.MORPH_OPEN,kenel)
plt.figure()
plt.subplot(1,2,1)
m1 = plt.imshow(letter_open[:,:,::-1])
plt.title('原图')
plt.subplot(1,2,2)
m2 = plt.imshow(cv_open[:,:,::-1])
plt.title('开运算后')
Text(0.5, 1.0, '开运算后')
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1hQzX0MJ-1637754238889)(output_10_1.png)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1hQzX0MJ-1637754238889)(output_10_1.png)]](https://ucc.alicdn.com/images/user-upload-01/f6211b6d4f4d4421a859aa89e09d1431.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV1NLSDA5Mjk=,size_12,color_FFFFFF,t_70,g_se,x_16&x-oss-process=image/resize,w_1400/format,webp)
cv_close = cv.morphologyEx(letter_close,cv.MORPH_CLOSE,kenel)
plt.figure()
plt.subplot(1,2,1)
m1 = plt.imshow(letter_close[:,:,::-1])
plt.title('原图')
plt.subplot(1,2,2)
m2 = plt.imshow(cv_close[:,:,::-1])
plt.title('闭运算后')
Text(0.5, 1.0, '闭运算后')
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qP3R8eUw-1637754238891)(output_11_1.png)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qP3R8eUw-1637754238891)(output_11_1.png)]](https://ucc.alicdn.com/images/user-upload-01/2ca10e8f16bc4747af85746a369e9d2a.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV1NLSDA5Mjk=,size_12,color_FFFFFF,t_70,g_se,x_16&x-oss-process=image/resize,w_1400/format,webp)
3.礼帽和黑帽运算
kenel = np.ones((10,10),np.uint8)
kenel
array([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]], dtype=uint8)
top = cv.morphologyEx(letter_open,cv.MORPH_TOPHAT,kenel)
plt.figure()
plt.subplot(1,2,1)
m1 = plt.imshow(letter_open[:,:,::-1])
plt.title('原图')
plt.subplot(1,2,2)
m2 = plt.imshow(top[:,:,::-1])
plt.title('礼帽后')
Text(0.5, 1.0, '礼帽后')
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SrX4DOta-1637754238892)(output_14_1.png)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SrX4DOta-1637754238892)(output_14_1.png)]](https://ucc.alicdn.com/images/user-upload-01/decf7fc5acdb4f5ca47fb3e9dcb389f1.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV1NLSDA5Mjk=,size_12,color_FFFFFF,t_70,g_se,x_16&x-oss-process=image/resize,w_1400/format,webp)
black = cv.morphologyEx(letter_close,cv.MORPH_BLACKHAT,kenel)
plt.figure()
plt.subplot(1,2,1)
m1 = plt.imshow(letter_close[:,:,::-1])
plt.title('原图')
plt.subplot(1,2,2)
m2 = plt.imshow(black[:,:,::-1])
plt.title('黑帽后')
Text(0.5, 1.0, '黑帽后')
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xFQP6sML-1637754238893)(output_15_1.png)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xFQP6sML-1637754238893)(output_15_1.png)]](https://ucc.alicdn.com/images/user-upload-01/2a468202747c49288927b493fd96d28b.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV1NLSDA5Mjk=,size_12,color_FFFFFF,t_70,g_se,x_16&x-oss-process=image/resize,w_1400/format,webp)