Files
digital-image-processing/7/3.py
T
2024-05-16 09:46:25 +08:00

42 lines
1.1 KiB
Python

import cv2 as cv
import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"] = ["SimSun"]
img = cv.imread(r"img\light_circle.jpg", cv.IMREAD_GRAYSCALE)
kernalSize = 19
img_adapt = cv.adaptiveThreshold(
img, 255, cv.ADAPTIVE_THRESH_MEAN_C, cv.THRESH_BINARY, kernalSize, 6
)
img_tophat = cv.morphologyEx(
img, cv.MORPH_TOPHAT, cv.getStructuringElement(cv.MORPH_ELLIPSE, (45, 45))
)
plt.figure()
plt.subplot(121)
plt.imshow(img, cmap="gray")
plt.title("待处理灰度图像")
plt.axis("off")
plt.subplot(122)
plt.imshow(img_adapt, cmap="gray")
plt.title("自适应阈值分割结果")
plt.axis("off")
plt.tight_layout()
plt.show()
# # 交互式调整参数
# kernalSize = 7
# plt.ion()
# for i in range(10):
# c = 4
# for j in range(10):
# plt.cla()
# img_seg_adapt = cv.adaptiveThreshold(
# img0, 255, cv.ADAPTIVE_THRESH_MEAN_C, cv.THRESH_BINARY, kernalSize, c
# )
# plt.imshow(img_seg_adapt, cmap="gray")
# print(kernalSize, c)
# plt.pause(0.01)
# c += 2
# kernalSize += 2
# plt.show()