将mask区域单独截取出来

计算mask外接矩阵

Numpy:获取与掩模大小相同的矩形区域

########示例############
import numpy as np

# 生成一个随机掩模
mask = np.zeros((100, 100))
mask[20:40, 30:60] = 1

# 获取掩模内像素点坐标
coords = np.where(mask)

# 获取矩形区域的左上角和右下角坐标
x_min, y_min = np.min(coords, axis=1)
x_max, y_max = np.max(coords, axis=1)

# 获取矩形区域
rect_area = mask[x_min:x_max, y_min:y_max]

将示例与SLIC超像素结合,达到将每一块超像素都截取出来的结果:

########
#提取mask区域
import cv2
import numpy as np
from skimage.segmentation import slic

img = cv2.imread('F:\graduate study\code\SLIC\Super Pixel\\2_try\POS_IMAGE\\321.jpg')
segments = slic(img, n_segments=800, compactness=20, enforce_connectivity=True, convert2lab=True)

# loop over the unique segment values
for (i, segVal) in enumerate(np.unique(segments)):

    # construct a mask for the segment
    mask = np.zeros(img.shape[:2], dtype="uint8")
    mask[segments == segVal] = 255

    # 获取掩模内像素点坐标
    coords = np.where(mask)


    # 获取矩形区域的左上角和右下角坐标
    x_min, y_min = np.min(coords, axis=1)
    x_max, y_max = np.max(coords, axis=1)
    print(x_min, y_min,x_max, y_max )

    # 获取矩形区域
    mask_area = img[x_min:x_max, y_min:y_max]
    cv2.imshow("img_slic", mask_area)
   	cv2.waitKey(0)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值