- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用 opencv 按位非在图像上应用蒙版。如果我在灰度模式下读取原始图像和蒙版图像,我就能够实现此结果,但它不适用于 3 channel 图像。
我已阅读此帖子 OpenCV Python Error: error: (-215) (mtype == CV_8U || mtype == CV_8S) && _mask.sameSize(*psrc1) in function cv::binary_op但我的问题不是数组的形状或掩码不是 uint8 格式。
import cv2
import numpy as np
img = cv2.imread("Original.png") # original image, shape 544,480,3, dtype uint8
label = cv2.imread("Mask.png") # black and white mask,shape 544,480,3, dtype uint 8
shape = img.shape # 544,480,3
black_background = np.zeros(shape=shape, dtype=np.uint8)
result = cv2.bitwise_not(img,black_background,mask=label) # this is where error occurs
cv2.imwrite("masked.png",result)
我希望输出是用标签掩盖的原始图像,我得到错误核心
OpenCV(4.0.0) C:\projects\opencv-python\opencv\modules\core\src\arithm.cpp:245: error: (-215:Assertion failed) (mtype == CV_8U || mtype == CV_8S) && _mask.sameSize(*psrc1) in function 'cv::binary_op'
最佳答案
正如错误提示,问题实际上是掩模形状。来自 docs :
mask – optional operation mask, 8-bit single channel array, that specifies elements of the output array to be changed.
您的标签
是3 channel 图像,不兼容;这就是灰度起作用的原因,但由于您的 Mask.png
实际上是黑白图像,您应该不用担心:
label = cv2.imread("Mask.png", cv2.IMREAD_GREYSCALE)
关于python - OpenCV(4.0.0)Python错误: (-215:Assertion failed) (mtype == CV_8U || mtype == CV_8S) && _mask.函数 'cv::binary_op'中的sameSize(*psrc1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56361919/
所以我正在尝试获取 cancan gem 与我的 Rails 3 应用程序一起工作,但我遇到了问题。 我试图复制 Ryan Bates( gem 的创造者)在他的 screen cast 中使用的代码
我收到此错误: cv2.error: OpenCV(4.1.2) C:\projects\opencv-python\opencv\modules\core\src\arithm.cpp:245: e
我正在使用 datitran( https://github.com/datitran/raccoon_dataset ) 的对象检测浣熊来训练我自己的数据集并遇到问题。 环境信息: 操作系统:Win
我正在尝试在通过级联检测到的脸上粘贴图片。 在编写代码时,遇到了此错误。 error: (-215:Assertion failed) (mtype == CV_8U || mtype == CV_8
我正在尝试使用 mask 和 OpenCV 的 bitwise_and 从图像中减去背景。但是,我收到以下错误: error: C:\ci\opencv_1512684736357\work\modu
我正在尝试使用 OpenCV Python 在我自己的实时视频流上叠加衬衫图像。三天以来我一直陷入这个特定的错误: 错误:(-215) (mtype == CV_8U || mtype == CV_8
我正在尝试使用 opencv 按位非在图像上应用蒙版。如果我在灰度模式下读取原始图像和蒙版图像,我就能够实现此结果,但它不适用于 3 channel 图像。 我已阅读此帖子 OpenCV Python
我是一名优秀的程序员,十分优秀!