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,[ ]中表示通道数。