我有以下图片:
我想要将图片裁剪为实际内容并将背景(白色空间)设为透明。我看到了这个问题:如何基于内容裁剪图像(Python & OpenCV)?,看完答案后,尝试了下面的代码:
但是当我尝试这段代码时,我得到了以下结果:
这并不是我正在寻找的结果,期望的结果是:
img = cv.imread("tmp/"+img+".png")
mask = np.zeros(img.shape[:2],np.uint8)
bgdModel = np.zeros((1,65),np.float64)
fgdModel = np.zeros((1,65),np.float64)
rect = (55,55,110,110)
cv.grabCut(img,mask,rect,bgdModel,fgdModel,5,cv.GC_INIT_WITH_RECT)
mask2 = np.where((mask==2)|(mask==0),0,1).astype('uint8')
img = img*mask2[:,:,np.newaxis]
plt.imshow(img),plt.colorbar(),plt.show()
但是当我尝试这段代码时,我得到了以下结果:
![结果](https://istack.dev59.com/aMF8t.webp)
![期望的结果](https://istack.dev59.com/oipPi.webp)