Python OpenCV(4.2.0)(-206:错误标志(参数或结构字段)),函数'中无法识别或不支持的数组类型;cvGetMat';

Python OpenCV(4.2.0)(-206:错误标志(参数或结构字段)),函数'中无法识别或不支持的数组类型;cvGetMat';,python,opencv,image-processing,Python,Opencv,Image Processing,我试图修复8000x4000图像和8000x4000二进制掩码,但出现以下错误 错误回溯(最近的调用) 最后)在 1 img=cv.imread('input/200130_033344133.jpg') 2 mask=cv.imread('resources/maskX.png',0) ---->3 dst=恒速维修(img,面罩,3,恒速维修) 4 cv.imshow('dst',dst) 5 cv.waitKey(0) 错误:OpenCV(4.2.0) C:\projects\opencv

我试图修复8000x4000图像和8000x4000二进制掩码,但出现以下错误

错误回溯(最近的调用) 最后)在 1 img=cv.imread('input/200130_033344133.jpg') 2 mask=cv.imread('resources/maskX.png',0) ---->3 dst=恒速维修(img,面罩,3,恒速维修) 4 cv.imshow('dst',dst) 5 cv.waitKey(0)

错误:OpenCV(4.2.0) C:\projects\opencv python\opencv\modules\core\src\array.cpp:2492: 错误:(-206:错误标志(参数或结构字段))无法识别或 函数“cvGetMat”中不支持的数组类型

这是我的密码。 我尝试的是将图像和掩码转换为numpy数组或cv2.UMat。但这一切都是徒劳的

img = cv.imread('input/200130_033344133.jpg')
mask = cv.imread('resources/maskX.png',0)
dst = cv.inpaint(img,mask,3,cv.INPAINT_TELEA)
cv.imshow('dst',dst)
cv.waitKey(0)
cv.destroyAllWindows()
为什么它不起作用?
我检查了图像是否正确加载。

我不知道哪里出了问题,因为它在Python 3.7和Mac OSX上的OpenCV 3.4上运行良好

你导入简历了吗?制作灰度后,遮罩是否超过1个通道?也许这是OpenCV 4的一个问题

这是对我有用的

有划痕的图像:

刮膜:

结果:


我在试图修复时也犯了同样的错误

error: (-206:Bad flag (parameter or structure field)) Unrecognized or unsupported array type in function 'cvGetMat'
然后我意识到我输入的掩码格式不正确,而不是
.jpg
我写的
.png
。因此,
cv2.imread()
正在加载一个空矩阵。当我修正打字错误时,错误就消失了

因此,请再次检查您的输入图像和掩码名称和格式

我认为这个错误是图像无法正确加载的标志

真诚地, 埃内斯

error: (-206:Bad flag (parameter or structure field)) Unrecognized or unsupported array type in function 'cvGetMat'