处理代码
import cv2 as cv
import numpy as np
def main():
# 1.导入图片
img_org = cv.imread("./img.png", cv.IMREAD_COLOR)
# 2.设置参数
seed_point = (290, 290) # 坐标
new_val = (255, 255, 255) # 赋新值
lower_diff = (30, 30, 30) # 下灰阶差
up_diff = (30, 30, 30) # 上灰阶差
# mask图片
h, w = img_org.shape[:2]
img_mask = np.zeros([h + 2, w + 2], np.uint8) # 需要大一点
img_copy = img_org.copy() # 会覆盖原图
# 3.执行处理
cv.floodFill(img_copy, img_mask, seed_point, new_val, lower_diff, up_diff,
flags=4 | (255 << 8) | cv.FLOODFILL_FIXED_RANGE) # 模式 4连通 + 255白色 + 区域计算
# 4.显示结果
cv.imshow("img_mask", img_mask)
cv.imshow("img_org", img_org)
cv.imshow("img_copy", img_copy)
cv.waitKey()
cv.destroyAllWindows()
if __name__ == '__main__':
main()
img_copy.jpg
img_mask.jpg