Redian新闻
>
如何在VC++下把raw图像快速写到硬盘里呢?
avatar
如何在VC++下把raw图像快速写到硬盘里呢?# Programming - 葵花宝典
s*z
1
我们在做一个图像采集系统.
camera公司有一个demo,是一个基于MFC的界面, 我现在就想改改demo达到我们的目的
。 目前这个界面只有图像显示,没有存储,我得想办法把图像存到硬盘里。
现在用相机的SDK,可以拿到图像的指针和大小。 图像是12bit的grayscale图。
我不知道如何把这个图像写到硬盘里。
另外, 要是一幅图像是1040X1376的,然后每个象素2bytes的话,一幅就是将近3M,如果
是20frames/s的话,不知道写的速度会不会跟的上。
谢谢大家拉!
avatar
k*f
2
够呛吧,60M的持续写速度。突发的还可能,反正都是在缓存里面的。
买个大内存的机器写到内存
或者做个简单的无损压缩,象素做差分,帧间差分。然后上LZ压缩一下,再送到硬盘

【在 s********z 的大作中提到】
: 我们在做一个图像采集系统.
: camera公司有一个demo,是一个基于MFC的界面, 我现在就想改改demo达到我们的目的
: 。 目前这个界面只有图像显示,没有存储,我得想办法把图像存到硬盘里。
: 现在用相机的SDK,可以拿到图像的指针和大小。 图像是12bit的grayscale图。
: 我不知道如何把这个图像写到硬盘里。
: 另外, 要是一幅图像是1040X1376的,然后每个象素2bytes的话,一幅就是将近3M,如果
: 是20frames/s的话,不知道写的速度会不会跟的上。
: 谢谢大家拉!

avatar
j*k
3
写之前要压缩呀

【在 s********z 的大作中提到】
: 我们在做一个图像采集系统.
: camera公司有一个demo,是一个基于MFC的界面, 我现在就想改改demo达到我们的目的
: 。 目前这个界面只有图像显示,没有存储,我得想办法把图像存到硬盘里。
: 现在用相机的SDK,可以拿到图像的指针和大小。 图像是12bit的grayscale图。
: 我不知道如何把这个图像写到硬盘里。
: 另外, 要是一幅图像是1040X1376的,然后每个象素2bytes的话,一幅就是将近3M,如果
: 是20frames/s的话,不知道写的速度会不会跟的上。
: 谢谢大家拉!

avatar
s*z
4
谢谢阿!
你说一次能申请比如600M的内存,然后把图像先全放到内存里面吗?计算机有2G的内存
,xp professional,只用做图像采集。
具体写应该用什么function阿?
谢谢

【在 k****f 的大作中提到】
: 够呛吧,60M的持续写速度。突发的还可能,反正都是在缓存里面的。
: 买个大内存的机器写到内存
: 或者做个简单的无损压缩,象素做差分,帧间差分。然后上LZ压缩一下,再送到硬盘

avatar
s*z
5
能不压缩就不压缩,只要能把图像都存下来就好了

【在 j*****k 的大作中提到】
: 写之前要压缩呀
avatar
k*f
6
600M应该没有问题的,不过你得要底层的内存申请,才能保证600M都是在物理内存而不
是虚存,具体的要去看看WIN32 API的virtual alloc

【在 s********z 的大作中提到】
: 谢谢阿!
: 你说一次能申请比如600M的内存,然后把图像先全放到内存里面吗?计算机有2G的内存
: ,xp professional,只用做图像采集。
: 具体写应该用什么function阿?
: 谢谢

avatar
z*e
7
我觉得哈,基本上,windows下一般这种user mode application应该无视内存大小的(
笑)。用malloc就好了。
virtualalloc/heapalloc都不能保证全部存入物理内存,要保证存入物理内存的话用另
外一个什么allocnopage之类的,这个需要权限。
不过也不必一定打死都要放在物理内存吧,你的目的只是把raw data读到一个memory区
域保存,至于是virtual memory还是physical memory 都不重要。

【在 s********z 的大作中提到】
: 谢谢阿!
: 你说一次能申请比如600M的内存,然后把图像先全放到内存里面吗?计算机有2G的内存
: ,xp professional,只用做图像采集。
: 具体写应该用什么function阿?
: 谢谢

avatar
s*z
8
谢谢!
对于我来说是什么memory确实不重要,但是不是physical memory的话,存的时候也会
很慢对吧。不知道能不能跟得上。

【在 z***e 的大作中提到】
: 我觉得哈,基本上,windows下一般这种user mode application应该无视内存大小的(
: 笑)。用malloc就好了。
: virtualalloc/heapalloc都不能保证全部存入物理内存,要保证存入物理内存的话用另
: 外一个什么allocnopage之类的,这个需要权限。
: 不过也不必一定打死都要放在物理内存吧,你的目的只是把raw data读到一个memory区
: 域保存,至于是virtual memory还是physical memory 都不重要。

avatar
a*l
9
第一次会比较痛苦,以后就好了.除非内存太小,或者程序过多.

【在 s********z 的大作中提到】
: 谢谢!
: 对于我来说是什么memory确实不重要,但是不是physical memory的话,存的时候也会
: 很慢对吧。不知道能不能跟得上。

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。