AttributeError: module 'cv2' has no attribute '_file_'
时间: 2023-11-28 13:46:17 浏览: 70
这个错误通常是由于OpenCV版本不兼容导致的。可以尝试更新OpenCV版本或者安装正确版本的OpenCV。以下是更新OpenCV版本的步骤:
1.卸载旧版本的OpenCV:
```shell
pip uninstall opencv-python
```
2.安装最新版本的OpenCV:
```shell
pip install opencv-python
```
如果你已经安装了正确版本的OpenCV,但仍然遇到此错误,请检查你的代码是否正确导入了OpenCV库。如果还是无法解决问题,请提供更多的上下文信息以便更好地帮助你解决问题。
相关问题
AttributeError: module 'cv2' has no attribute 'FREAK_create'
引用\[1\]:It appears the new module is installed correctly. I'm able to import cv2 in both Python versions. However neither recognise the new features the module is supposed to add. >>> cv2.SURF() Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'module' object has no attribute 'SURF' >>> cv2.xfeatures2d.SURF() Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'module' object has no attribute 'xfeatures2d' python opencv share improve this question editedSep 27 '14 at 12:20 asked Sep 26 '14 at 12:04 Robbert 3,158 3 24 37 Could you consider editing the original Question since the answer does not reflect the question in the title.– Elliot Woods Mar 2 '17 at 6:08 add a comment 4 Answers active oldest votes up vote 15 down vote accepted 。 引用\[2\]:I encountered this same issue. I'm using python 2.7.6 and OpenCv 3.0 with the additional non-free modules. I do have xfeatures2d present in available modules and can import it, however it was as though xfeatures2d didn't contain SIFT or SURF. No matter how I called them it was the same Error: 。 引用\[3\]:在使用python版的OpenCV进行特征提取时出现"AttributeError: module ‘cv2.cv2’ has no attribute ‘xfeatures2d_SIFT’ "错误 通过网上寻找解决方法,发现是当前opencv版本(4.5)不能使用sift、surf等特征匹配算法。后面使用opencv3.4.2.16和python3.7成功运行了,运行效果如下图所示。 。
问题: AttributeError: module 'cv2' has no attribute 'FREAK_create'
回答: 这个错误通常是由于OpenCV版本的问题引起的。根据引用\[3\]中的描述,当前版本的OpenCV(4.5)不支持FREAK_create等特征匹配算法。建议尝试使用较早版本的OpenCV,如OpenCV 3.4.2.16,并确保与Python 3.7兼容,以解决这个问题。
#### 引用[.reference_title]
- *1* *2* [https://stackoverflow.com/questions/26059134/adding-modules-from-opencv-contrib-to-opencv](https://blog.csdn.net/u011854789/article/details/79556022)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [( python )OpenCV特征匹配函数错误cv2.xfeatures2d_SURF.create()](https://blog.csdn.net/qq_44924694/article/details/126162476)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
AttributeError: module 'cv2' has no attribute 'CAP_POP_FPS
这个错误是因为在代码中使用了错误的属性名。正确的属性名应该是`CAP_PROP_FPS`而不是`CV_CAP_PROP_FPS`。你可以按照以下方式修改代码:
引用中提到,在OpenCV 3.2版本中,不需要在属性名前面加上"CV"。所以你可以使用`cv2.CAP_PROP_FPS`来获取视频的帧率。
修改后的代码如下所示:
```python
videoCapture = cv2.VideoCapture(file_path)
fps = videoCapture.get(cv2.CAP_PROP_FPS)
size = (int(videoCapture.get(cv2.CAP_PROP_FRAME_WIDTH)), int(videoCapture.get(cv2.CAP_PROP_FRAME_HEIGHT)))
```
这样修改后,就能正确获取视频的帧率了。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>