c++ findContours 内存报错
时间: 2023-08-19 17:14:07 浏览: 111
回答: 内存报错通常是由于使用了不匹配的参数类型或者堆管理器不一致导致的。根据引用\[1\]和引用\[3\]的内容,可能的解决方案有以下几种:
1. 使用cv::vector和cv::Point代替std::vector和Point来声明变量,以确保参数类型匹配。
2. 修改项目的运行库配置,将其改为“多线程调试(/MTd)”或者选择多线程DLL(/MD)。这样可以确保堆管理器一致,避免出现内存错误。\[1\]
3. 在调用findContours函数之前,手动进行空间的分配,例如使用vector<Mat> contours(100)来分配内存。\[1\]
4. 修改项目设置,使用非DLL版本的运行库。因为使用不同的堆管理器会导致指针在不同的堆上创建和删除,可能会导致程序崩溃。\[2\]
请根据具体情况选择适合的解决方案来解决内存报错问题。
#### 引用[.reference_title]
- *1* [Opencv2.4.9 中 findContours 的报错与解决方案](https://blog.csdn.net/weixin_42045517/article/details/125522608)[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^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [OpenCV中用findContours函数异常问题分析](https://blog.csdn.net/huzhifei/article/details/120803373)[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^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [FindContours()函数崩溃问题探索](https://blog.csdn.net/wangxiaai/article/details/74964873)[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^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文