使用 OpenCV 退出代码 -1073741819 (0xC0000005)
Posted
技术标签:
【中文标题】使用 OpenCV 退出代码 -1073741819 (0xC0000005)【英文标题】:Exit code -1073741819 (0xC0000005) with OpenCV 【发布时间】:2020-10-31 23:20:28 【问题描述】:我正在 Python 中尝试一个非常简单的 OpenCV 示例,但它完全不适合我:
import cv2
import matplotlib.pyplot as plt
if __name__ == '__main__':
img1 = plt.imread('../data/input/frame000013.png')
img2 = plt.imread('../data/input/frame000014.png')
img1_gray = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
sift = cv2.SIFT()
print(sift)
kp = sift.detect(img1_gray, None)
print(kp)
如果我尝试使用 PyCharm 运行它,我会收到以下错误:
Process finished with exit code -1073741819 (0xC0000005)
如果我尝试通过终端执行它,它似乎并没有越过kp = sift.detect(img1_gray, None)
行,也没有真正到达第二个print
语句,没有提供任何错误通知。
我使用:Windows 10、Python 3.8、opencv-python
&opencv-contrib-python
4.4.0.44。
【问题讨论】:
像这样混合库绝不是一个好主意... cv2.SIFT don't exist ...,对于 OpenCV 4.4.0.44 ,语法是 sift = cv2.SIFT_create() 【参考方案1】:如果你看documentation,应该是SIFT_create()
。
sift = cv2.SIFT_create()
print(sift)
kp = sift.detect(img1_gray, None)
但是,你为什么要阅读带有plt.imread
的图像?
我问的原因是,您正在使用BGR2GRAY
转换为灰度。但是plt.imread
以RGB
格式返回图像。因此,如果你打算使用plt.imread
:
import cv2
import numpy as np
import matplotlib.pyplot as plt
def rgb2gray(rgb):
return np.dot(rgb[..., :3], [0.2989, 0.5870, 0.1140]).astype(np.uint8)
if __name__ == '__main__':
img1 = plt.imread('../data/input/frame000013.png')
img2 = plt.imread('../data/input/frame000014.png')
img1_gray = rgb2gray(img1)
sift = cv2.SIFT_create()
print(sift)
kp = sift.detect(img1_gray, None)
print(kp)
或者如果你选择cv2.imread
:
import cv2
import matplotlib.pyplot as plt
if __name__ == '__main__':
img1 = cv2.imread('../data/input/frame000013.png')
img2 = cv2.imread('../data/input/frame000014.png')
img1_gray = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
sift = cv2.SIFT_create()
print(sift)
kp = sift.detect(img1_gray, None)
print(kp)
【讨论】:
以上是关于使用 OpenCV 退出代码 -1073741819 (0xC0000005)的主要内容,如果未能解决你的问题,请参考以下文章
尝试使用 OpenCV 库运行示例代码后,进程以退出代码 -1073741515 (0xC0000135) 完成
OpenCV程序在退出时崩溃linux(使用cvtColor)
mac本使用opencv打开摄像头导致python意外退出?
Visual Studio 中 Opencv 的介绍性示例程序以代码 -1 退出。没理由
OpenCV 2.4.10 + Qt Creator 3.2.0 & Qt5.4.0 MingW 64bits Windows 7 - “退出代码 -1073741515”