在C#中图像识别的时候出现内存不足的原因

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在C#中图像识别的时候出现内存不足的原因相关的知识,希望对你有一定的参考价值。

各位大佬帮忙指点一下

那用gc.Collect()回收一下看看。
你再注意下这行代码:
Image img = new Bitmap(Image.FromFile(s));

换成Bitmap bmp = new Bitmap(s);
估计就没问题了。
追问
感谢:youngking87 换成Bitmap bmp = new Bitmap(s);是可以历遍完 listBox1.Items 。
但我需要将Bitmap 转换成Image
用 Image img = Image .GetThumbnailImage(x, y, null, new IntPtr());这样缩小图片
历编第一个转换就出现内存不足了。 我在后面加上 gc.Collect(); 也没用。因为在历遍中第一个转换就提示内存不足了。我的历编是加一个,就转换一个,然后再释放一个。这样循环历遍的。
追答
嗯,可以啊。那下面再释放img。就好了。追问

这个怎么修改

参考技术A 那用gc.Collect()回收一下看看。
你再注意下这行代码:
Image img = new Bitmap(Image.FromFile(s));
换成Bitmap bmp = new Bitmap(s);
估计就没问题了。
参考技术B 图片太大了。试着只编译x64看看,如果还不行只能缩小图片了 参考技术C 百度一下你就知道了百百度一下你就知道了百百度一下你就知道了百百度一下你就知道了百百度一下你就知道了百百度一下你就知道了百 参考技术D 尝试删除一下

电脑开机一会就出现内存不足,是啥原因

内存不足的原因:
1、感染病毒
有些病毒发作时会占用大量内存空间,导致系统出现内存不足的问题。赶快去杀毒,升级病毒库,然后把防毒措施做好!
2、虚拟内存设置不当
虚拟内存设置不当也可能导致出现内存不足问题,一般情况下,虚拟内存大小为物理内存大小的2倍即可,如果设置得过小,就会影响系统程序的正常运行。重新调整虚拟内存大小以WinXP为例,右键点击“我的电脑”,选择“属性”,然后在“高级”标签页,点击“性能”框中的“设置”按钮,切换到“高级”标签页,然后在“虚拟内存”框中点击“更改”按钮,接着重新设置虚拟内存大小,完成后重新启动系统就好了。
3、系统空间不足
虚拟内存文件默认是在系统盘中,如WinXP的虚拟内存文件名为“pagefile.sys”,如果系统盘剩余空间过小,导致虚拟内存不足,也会出现内存不足的问题。系统盘至少要保留300MB剩余空间,当然这个数值要根据用户的实际需要而定。用户尽量不要把各种应用软件安装在系统盘中,保证有足够的空间供虚拟内存文件使用,而且最好把虚拟内存文件安放到非系统盘中。
4、因为SYSTEM用户权限设置不当
基于NT内核的Windows系统启动时,SYSTEM用户会为系统创建虚拟内存文件。有些用户为了系统的安全,采用NTFS文件系统,但却取消了SYSTEM用户在系统盘“写入”和“修改”的权限,这样就无法为系统创建虚拟内存文件,运行大型程序时,也会出现内存不足的问题。问题很好解决,只要重新赋予SYSTEM用户“写入”和“修改”的权限即可,不过这个仅限于使用NTFS文件系统的用户。
虚拟内存的优化:
1、启用磁盘写入缓存
在“我的电脑”上单击鼠标右键选择“属性->硬件”,打开设备管理器找到当前正在使用的硬盘,单击鼠标右键选择属性。在硬盘属性的的“策略”页中,打开“启用磁盘上的写入缓存”。
这个选项将会激活硬盘的写入缓存,从而提高硬盘的读写速度。不过要注意一点,这个功能打开后,如果计算机突然断电可能会导致无法挽回的数据丢失。因此最好在有UPS的情况下再打开这个功能。当然,如果你平常使用计算机时不要进行什么重要的数据处理工作,没有UPS也无所谓,这个功能不会对系统造成太大的损失。
2、打开Ultra MDA
在设备管理其中选择IDE ATA/ATAPI控制器中的“基本/次要IDE控制器”,单击鼠标右键选择“属性”,打开“高级设置”页。这里最重要的设置项目就是“传输模式”,一般应当选择“DMA(若可用)”。
3、配置恢复选项
Windows XP 运行过程中碰到致命错误时会将内存的快照保存为一个文件,以便进行系统调试时使用,对于大多数普通用户而言,这个文件是没有什么用处的,反而会影响虚拟内存的性能。所以应当将其关闭。
在“我的电脑”上单击鼠标右键,选择“属性->高级”,在“性能”下面单击“设置”按钮,在“性能选项”中选择“高级”页。这里有一个“内存使用”选项,如果将其设置为“系统缓存”,Windows XP 将使用约4MB的物理内存作为读写硬盘的缓存,这样就可以大大提高物理内存和虚拟内存之间的数据交换速度。默认情况下,这个选项是关闭的,如果计算机的物理内存比较充足,比如256M或者更多,最好打开这个选项。但是如果物理内存比较紧张,还是应当保留默认的选项。
参考技术A 有两种可能:第一是您开启的进程太多了,也是说您当前运行的程式太多了,第二个就可能系统中毒了,如果以前都没出现过这种情况并没有装过大型软件,后者的可能性很大,建议用msconfig或360查看下您的开机启动项或杀毒看看,希望能帮您!本回答被提问者和网友采纳 参考技术B 你电脑开机时加载的进程太多了吧 按Ctrl+Alt+Del看看你的进程 是不是太多了?
按WIN+R(或开始-运行),输入 msconfig 进入系统配置程序 点里面的启动 把不需要开机时运行的进程关掉,.确定退出..重启一下看看

以上是关于在C#中图像识别的时候出现内存不足的原因的主要内容,如果未能解决你的问题,请参考以下文章

内存不足是啥原因

为啥我的 C# 应用程序中出现内存不足异常?

人工智能 | 读心术?!日本深度神经网络算法重建人脑中图像

为啥在屏幕上绘制图像之前不会出现内存不足的问题?

C# WinForm 循环加载图片出现内存不足

电脑开机一会就出现内存不足,是啥原因