【问题标题】:Extraction part of image that matches to a mask in OpenCV提取与 OpenCV 中的掩码匹配的图像部分
【发布时间】:2016-03-31 17:07:33
【问题描述】:

在带有PythonOpenCV 应用程序中,我有一个蒙版和一个RGB 图像,我想提取与蒙版匹配的部分图像,但我不知道如何。

例如,这是一个掩码:

我想这样做:

我这样做:

temp = cv2.bitwise_and(img ,img, mask=feature_map)

但它给了我和错误:

cv2.error: /Users/mee/opencv/modules/core/src/arithm.cpp:1589: error: (-215) (mtype == CV_8U || mtype == CV_8S) && _mask.sameSize(*psrc1) in function binary_op

【问题讨论】:

  • 我现在没有设置来尝试它,但是感觉就像(mtype == CV_8U || mtype == CV_8S) 部分是在说你的面具需要是一个CV_8UC3 矩阵。
  • 使用 copyTo 到一个黑色的初始化图像,带有反转的掩码
  • @seleciii44 我希望掩码是单通道,但我认为您对类型的观察是正确的。我还希望蒙版在应用于图像之前被反转。

标签: python c++ opencv image-processing mask


【解决方案1】:

您应该将您的蒙版转换为对象蒙版像素值为 255,背景像素值为 0。之后,您可以使用新蒙版对 RGB 图像的每个颜色通道应用和操作或乘法操作。

【讨论】:

    【解决方案2】:

    你可以这样做:

    mask = cv2.imread('mask.png',0)
    im = cv2.imread('guy.png')
    mask_inv =  255 - mask;
    final_im = mask_inv*im
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-28
      • 2013-10-09
      • 2021-05-20
      • 2015-10-11
      • 1970-01-01
      • 2015-02-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多