我对这种东西完全陌生,我使用 SLIC 从图像中获取超像素,现在我已经提取了检测到的单个超像素,但它就像整个起始 img 维度,除了有超像素,图像的其余部分是黑色,对不起,我的英语不好,我将在下面尝试解释。
import cv2
import numpy as np
from skimage.segmentation import slic
myimg = cv2.imread('4.5.jpg')
segments = slic(myimg, n_segments=200, compactness=10, sigma=1)
for i, segVal in enumerate(np.unique(segments)):
mask = np.zeros(myimg.shape[:2], dtype = "uint8")
mask[segments == segVal] = 255
cv2.imwrite('output.png', cv2.bitwise_and(myimg, myimg, mask = mask))
#show the masked region
#cv2.imshow("Mask", mask)
cv2.imshow("Applied", cv2.bitwise_and(myimg, myimg, mask = mask))
cv2.waitKey(1)
这实际上是我获取超像素的代码,但是当我存储单个超像素时,我得到的是那个链接(我还不允许嵌入图像) :
现在你可以看到原始图像和超像素的 H 和 W 有一个大的黑色区域,我希望只用超像素区域裁剪一个“矩形或正方形”,我该怎么做?谢谢你,对不起我的英语