opencv之图像创建注意事项

         在opencv中进行图像创建时,比如imgIn.create(cvSize(1920, 1080), CV_8UC3);  然后进行分析的图像大小要求为(640.480),则需要对imgIn进行resize,此时基于两种考虑:

(1)为保证减少创建更多图像,会再定义一个Mat型数据imgIn2,然后再进行resize,即resize(imgIn,imgIn2,cvSize(640,480)),如下:

     imgIn.create(cvSize(1920, 1080), CV_8UC3);

    Mat imgIn2;//在类中可以声明成成员函数

   resize(imgIn,imgIn2,cvSize(640,480);

   这样的好处:  第一次新增加一个Mat型数据,后面imgIn2的大小不会变化,减少内存的变动。唯一的缺点只是多了一个变量。

(2)第二种方法是直接对imgIn进行resize,如下:

  imgIn.create(cvSize(1920, 1080), CV_8UC3);

  resize(imgIn,imgIn,cvSize(640,480);

  这样的好处:减少一个变量imgIn2的定义;

这样的缺点:由于对imgIn通常对应着外界图像的输入(1920, 1080),而分析中任务中的大小要求为(640,480),导致对imgIn的内存会不断的进行变动(在(1920, 1080)和(640,480)之间不断的进行申请和释放),导致内存会出现来不及释放而上涨的风险,在大规模服务运行中会出现这种情况。

建议,增加一个变量,保证内存的恒定,减少变动。

   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值