我正在编写一个图像拼接程序,目前已经开始工作,但我想重新开始并对其进行优化。我想把所有图像都放到C ++中vector<Mat>
,所以我可以创建其他向量,这样我生成的所有不同图层都在同一个向量位置。我想知道将每个图像加载到矢量中是否聪明,或者是否更加智能地加载矢量的地址位置。不确定图像在RAM上有多重,并寻找一些见解。每个图像将通过关键点检测,束调整,单应性计算,拼接和混合进行多次传递。
干杯
答案 0 :(得分:0)
每个图像将采用以下字节数量的RAM:字节 - 每个样本x宽度x高度x个通道数(加上几个字节来存储一些信息,如维度)
灰度图像有1个通道,彩色图像有3个,透明图像有4个,但是你可以有更多通道的多光谱图像。
根据精度,每个样本的图像可以包含1个或更多字节。 1个字节表示0到255之间的值,这是很常见的,但每个样本也有2或4个字节。
每张图片都可以轻松占用几兆字节,因此它取决于您拥有的图像数量,图像数量以及是否真的需要存储所有步骤。
我经常尝试将图像重用于中间步骤,并尝试保存RAM(特别是如果您逐个处理并将结果存储在磁盘中)。