• Opencv Error Insufficient memory的解决办法


    本文主要解决如下问题:

    Opencv Error Insufficient memory错误解决方案

    x86架构切换到x64的方法

    应用程序无法正常启动0xc000007b解决方案

      由于本人比较懒,恰好又都是同一天遇到的问题,所以就在一篇文章里面说了,不要学我哈,好了,言归正传

      最近在做一个识别CAD图纸并且画出的项目时,出现内存不足问题,即Opencv Error:Insufficient memory.in cv::out of memory error,导致系统崩溃。

      在网上查了一下,错误的原因可能是VS2012项目的x86架构下的内存太小,无法加载更多数据。当然,也可能是出现内存泄漏导致内存一直飙升,以及栈溢出等等都可能导致该类错误的出现,对待该类问题需要具体情况具体分析。我的解决办法就是将项目切换到x64架构上.这里说一下切换的步骤以及会出现的问题:

    1.修改系统环境变量

    这里我把x86架构以及x64架构的路径都加上了:
    %SystemRoot%system32;
    %SystemRoot%;%SystemRoot%System32Wbem;
    %SYSTEMROOT%System32WindowsPowerShellv1.0;
    C:WindowsSysWOW64;%OPENCV%、

    2.切换x64架构
    .

     如果没有x64选项,则:
    (1)选择其下面的配置管理器,

    在这里插入图片描述
    在这里插入图片描述

    (2)在配置管理窗口,点击箭头所指的“新建”,弹出新建窗口
    在这里插入图片描述

    (3)在“新建解决方案平台”窗口,选择“x64”,然后点击“确定”
    在这里插入图片描述

    3.在项目——属性中更改VC++目录中的库目录,将原来的x86架构下的库目录改为x64架构下的库目录。
    在这里插入图片描述

    4.在同属性页下将链接器——高级——目标计算机更改为:MachineX64 (/MACHINE:X64)

    在这里插入图片描述

    5. 若和QT一起工作的,需要在QT5——> Qt Projecte Settings中的最后一个version选择上qt版本。
    在这里插入图片描述

    注意:在这里已经基本切换完了,如果没有问题恭喜你,但是,如果经过上述修改之后若是如下问题:应用程序无法正常启动0xc000007b ,则可能是缺少相关的 dll文件。

    在这里插入图片描述

    解决方案:找到opencv中x64里面的bin文件夹,将里面的dll文件复制到x64架构对应的systerm32文件夹中(x86对应的是SysWOW64文件夹)。
    在这里插入图片描述

    搞定!可能不一定适合所有人。

  • 相关阅读:
    Apache Tomcat Ajp CVE-2020-1938漏洞复现
    关于JDK高版本下RMI、LDAP+JNDI bypass的一点笔记
    javaweb-codereview 学习记录-5
    java 动态代理机制
    关于<Java 中 RMI、JNDI、LDAP、JRMP、JMX、JMS那些事儿(上)>看后的一些总结-2
    关于<Java 中 RMI、JNDI、LDAP、JRMP、JMX、JMS那些事儿(上)>看后的一些总结-1
    javaweb-codereview 学习记录-4
    从0到1掌握某Json-TemplatesImpl链与ysoserial-jdk7u21的前因后果
    javaweb-codereview 学习记录-2
    javaweb-codereview 学习记录-1
  • 原文地址:https://www.cnblogs.com/ybqjymy/p/14577018.html
Copyright © 2020-2023  润新知