import cv2
import numpy as np
img = cv2.imread("a.jpg", 0)
img2 = img.copy()
# cv2.erode(img, (3, 3))
# 开操作,稍微去噪
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (3, 3))
img = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)
# img = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)
num, labels, stats, centroids = cv2.connectedComponentsWithStats(img, connectivity=8)
img1 = np.zeros_like(img)
for i in range(num):
if i==0:
continue
if stats[i][-1] > 50:
img1[labels == i] = 255
# 恢复原图的纹理,但是噪声已去除
img1 = np.where(img1>0, img2, 0)
img1 = np.array(img1, dtype=np.uint8)
img1 = cv2.cvtColor(img1, cv2.COLOR_GRAY2RGB)
cv2.imwrite('a.jpg', img1)
阅读量:1605
点赞量:0
收藏量:0