import cv2                              
import numpy as np
import matplotlib.pyplot as plt                    

gray = cv2.imread("opencv_logo.jpg", cv2.IMREAD_GRAYSCALE)  
_, binary = cv2.threshold(gray, 200, 255, cv2.THRESH_BINARY_INV)  # 反向二值化:INV = Inverse(反转 / 反向);>200设为0,<200设为255,黑白反转
kernel = np.ones((5, 5), np.uint8)       # 创建5x5正方形全1矩阵,作为形态学操作的结构元素(核)
erosion = cv2.erode(binary, kernel)      # 腐蚀操作:白色区域收缩,消除小白点、细线条,断开小连接
dilation = cv2.dilate(binary, kernel)    # 膨胀操作:白色区域扩张,填补小洞、缝隙,连接邻近区域

plt.figure(figsize=(12, 10))  # 设置窗口大小 宽高 英寸
plt.subplot(131), plt.imshow(binary, cmap="gray"), plt.title("binary") #2行2列中的第1张图
plt.subplot(132), plt.imshow(erosion, cmap="gray"), plt.title("erosion") #cmap=gray,让matplotlib用灰度模式显示图像
plt.subplot(133), plt.imshow(dilation, cmap="gray"), plt.title("dilation")
plt.show()  # 最终显示

在这里插入图片描述

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐