读图片、二进制文件以及使用Mat数组赋值过程中的笔记

1.将图片读到Mat中比较简单,直接用imread("xxx.jpg")即可;

2.读入一个二进制的文件数据,在这里,我读的是一个数据大小为640X480的二进制txt,

   读入Mat的程序如下:

                Mat Img(480,640,CV_32FC1);                 //定义一个一维Mat数组
         ifstream fin("xxx.txt", ios::binary);              //二进制方式打开需要打开的文件
         fin.read((char*)(Img.data),4*307200);    //读入文件数据到Mat数组,这里的4*307200为需要分配的内存大小

3.向三维Mat 赋值

                由于我的Mat大小是Mat data (480,640,CV_32FC3)

                故以此为例:

for(int i=0;i<480;i++)

   {

       for(int j=0;j<480;j++)

             {

                float* p =(float*) data.data;

                p[i]=要赋给的数据;

             }

    }

4.将Mat的值赋给其他变量的方法 

        float a = data.at<Vec3b>(i,j)[0]   //<>中为类型,float写Vec3f,还有Vec3b,[ ]中表示通道数。

  

                                       


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值