Traceback (most recent call last): File "D:\PycharmProjects\老照片修复复杂\main.py", line 81, in <module> main() File "D:\PycharmProjects\老照片修复复杂\main.py", line 71, in main missing = extract_missing(img, edges) File "D:\PycharmProjects\老照片修复复杂\main.py", line 41, in extract_missing missing = cv2.bitwise_and(img, img, mask=cv2.drawContours(np.zeros_like(img), [hull], 0, (255, 255, 255), -1)) cv2.error: OpenCV(4.7.0) D:\a\opencv-python\opencv-python\opencv\modules\core\src\arithm.cpp:230: error: (-215:Assertion failed) (mtype == CV_8U || mtype == CV_8S) && _mask.sameSize(*psrc1) in function 'cv::binary_op'
时间: 2023-06-17 10:03:21 浏览: 80
这个错误提示是OpenCV抛出的。根据错误提示,它似乎是由于掩码(mask)的数据类型不正确引起的。在你的代码中,你正在使用np.zeros_like()函数创建一个全零数组作为掩码,并且尝试将其与图像进行按位与运算。但是,由于你没有指定数据类型,np.zeros_like()函数默认使用与输入数组相同的数据类型,这可能会导致错误。你可以尝试将掩码的数据类型设置为np.uint8,例如:
```
missing = cv2.bitwise_and(img, img, mask=cv2.drawContours(np.zeros_like(img, dtype=np.uint8), [hull], 0, (255, 255, 255), -1))
```
这样,你可以将掩码的数据类型设置为8位无符号整数类型,避免了上述错误。
相关问题
运行报错C:\Users\Administrator\PycharmProjects\pythonProject\venv\Scripts\python.exe C:/Users/Administrator/PycharmProjects/pythonProject/main.py Traceback (most recent call last): File "C:/Users/Administrator/PycharmProjects/pythonProject/main.py", line 1, in <module> import pymysql ModuleNotFoundError: No module named 'pymysql'
这个错误提示是因为你的项目中没有安装pymysql模块,你需要在命令行中输入以下命令来安装pymysql模块:
```
pip install pymysql
```
如果你使用的是PyCharm开发环境,可以直接在PyCharm的Terminal中输入以上命令,也可以在PyCharm的Project Interpreter中搜索pymysql并安装。安装完成后,重新运行你的代码即可。
Traceback (most recent call last): File "C:\Users\Amtec\PycharmProjects\pythonProject\main.py", line 2, in <module> import cx_Oracle
这个错误信息表明在文件 "C:\Users\Amtec\PycharmProjects\pythonProject\main.py" 第 2 行,在导入 cx_Oracle 模块时发生了 ImportError 错误。这可能是因为你没有安装 cx_Oracle 模块或者安装的版本不兼容。你可以尝试以下两种方法解决这个问题:
1.使用 pip 安装 cx_Oracle 模块
```shell
pip install cx_Oracle
```
2.下载并安装适合你的 Python 版本和操作系统的 cx_Oracle 模块,下载地址为:https://www.oracle.com/database/technologies/instant-client/downloads.html
阅读全文