学习笔记(03):一学即懂的计算机视觉(第一季)-图像分割实战演练(II)

立即学习:https://edu.csdn.net/course/play/26281/327090?utm_source=blogtoedu

import numpy as np
import cv2
import copy

filename = r'C:\Users\c\Pictures\fruits.jpg'
img=cv2.imread(filename)
if img is None:
    print('Failed to load image file')
    sys.exit(1)
h,w=img.shape[:2]
mask=np.zeros((h+2,w+2),np.uint8)
seed_pt=None
fixed_range=True
connectivity=4 #4连通

def update(dummy=None):
    if seed_pt is None:
        cv2.imshow('floodfill',img)
        return
    flooded=img.copy()#
    mask[:]=0
    lo=cv2.getTrackbarPos('lo','floodfill')
    hi=cv2.getTrackbarPos('hi','floodfill')
    flags=connectivity
    if fixed_range:
        flags|=cv2.FLOODFILL_FIXED_RANGE
    #
    cv2.floodFill(flooded,mask,seed_pt,(255,255,255),(lo,)*3,(hi,)*3,flags)
    cv2.circle(flooded,seed_pt,2,(0,0,255),-1)
    cv2.imshow('floodfill',flooded)

def onmouse(event,x,y,flags,param):
    global seed_pt
    if flags & cv2.EVENT_FLAG_LBUTTON:
        seed_pt=x,y
        update()
update()#显示初始图片
cv2.setMouseCallback('floodfill',onmouse)#关联鼠标左键与要执行的函数
cv2.createTrackbar('lo','floodfill',20,255,update)#创建控制条
cv2.createTrackbar('hi','floodfill',20,255,update)

ch=cv2.waitKey()
if ch==27:  #ESC键退出
    cv2.destroyAllWindows()

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值