opencv4.0-python3.7 grabcut算法简单应用

不废话,上代码--------------------

所用示例图像500*700*3

import cv2 as cv
import numpy as np
src = cv.imread("C:/Users/Administrator/Desktop/curry.jpg")
cv.imshow("input", src)
print(src.shape[:2])#
mask = np.zeros(src.shape[:2], dtype=np.uint8)#src.shape[:2]=(500,700)
rect = (50,0,580,500)#(50,0)roi边框左上角坐标。(580,500):...右下角坐标
bgdmodel = np.zeros((1,65),np.float64)#后台模型的临时数组。
fgdmodel = np.zeros((1,65),np.float64)#前台模型的临时数组。
cv.grabCut(src,mask,rect,bgdmodel,fgdmodel,7,mode=cv.GC_INIT_WITH_RECT)#7:算法迭代次数;算法收敛前,迭代次数越高效果越好;本例,迭代7次达到最优
mask2 = np.where((mask==1) | (mask==3), 255, 0).astype('uint8')
result = cv.bitwise_and(src,src,mask=mask2)
cv.imshow("result", result)
cv.imwrite("C:/Users/Administrator/Desktop/curry_roi.jpg",result)


cv.waitKey(0)
cv.destroyAllWindows()

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值