讀圖片、二進制文件以及使用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,[ ]中表示通道數。

  

                                       


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章