亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

OpenCV cv.Mat與.txt文件數據的讀寫操作

2020-01-26 13:43:17
字體:
來源:轉載
供稿:網友

本篇文章主要介紹了OpenCV cv.Mat 與 .txt 文件數據的讀寫操作,小編覺得挺不錯的,現在分享給大家。

1、按OpenCV格式實現的 .txt 文件讀寫

可以用 cvSave 和 cvLoad 實現,格式和 .xml/.yml 的差不多,不過如果專用與 OpenCV 的數據讀寫,還是用  .xml/.yml 文件格式較好,我比較喜歡 .yml 格式,可讀性非常棒。

用 cvSave 和 cvLoad 讀寫 .txt 文件,其實現方式和數據格式與 .yml 文件基本一致。

例如:cvSave("camera_matrix.txt",camera_matrix);  //保存了 camera_matrix 的數組頭以及和它所指的data(類似yml形式的文件)

2、導入/導出其它程序的 .txt 文件數據

可以用常規的 sprintf_s 和 fprintf_s 來實現,不過效率比較低,這里介紹一種快捷易用的方法,利用了 std 的 steam 和 vector。

#include <iostream> #include <fstream> #include <iterator> #include <vector>  using namespace std;  /*----------------------------  * 功能 : 將 cv::Mat 數據寫入到 .txt 文件  *----------------------------  * 函數 : WriteData  * 訪問 : public  * 返回 : -1:打開文件失?。?:寫入數據成功;1:矩陣為空  *  * 參數 : fileName [in] 文件名  * 參數 : matData [in] 矩陣數據  */ int WriteData(string fileName, cv::Mat& matData) {  int retVal = 0;   // 打開文件  ofstream outFile(fileName.c_str(), ios_base::out); //按新建或覆蓋方式寫入  if (!outFile.is_open())  {  cout << "打開文件失敗" << endl;  retVal = -1;  return (retVal);  }   // 檢查矩陣是否為空  if (matData.empty())  {  cout << "矩陣為空" << endl;  retVal = 1;  return (retVal);  }   // 寫入數據  for (int r = 0; r < matData.rows; r++)  {  for (int c = 0; c < matData.cols; c++)  {  uchar data = matData.at<uchar>(r,c); //讀取數據,at<type> - type 是矩陣元素的具體數據格式  outFile << data << "/t" ; //每列數據用 tab 隔開  }  outFile << endl; //換行  }   return (retVal); }   /*----------------------------  * 功能 : 從 .txt 文件中讀入數據,保存到 cv::Mat 矩陣  * - 默認按 float 格式讀入數據,  * - 如果沒有指定矩陣的行、列和通道數,則輸出的矩陣是單通道、N 行 1 列的  *----------------------------  * 函數 : LoadData  * 訪問 : public  * 返回 : -1:打開文件失敗;0:按設定的矩陣參數讀取數據成功;1:按默認的矩陣參數讀取數據  *  * 參數 : fileName [in] 文件名  * 參數 : matData [out] 矩陣數據  * 參數 : matRows [in] 矩陣行數,默認為 0  * 參數 : matCols [in] 矩陣列數,默認為 0  * 參數 : matChns [in] 矩陣通道數,默認為 0  */ int LoadData(string fileName, cv::Mat& matData, int matRows = 0, int matCols = 0, int matChns = 0) {  int retVal = 0;   // 打開文件  ifstream inFile(fileName.c_str(), ios_base::in);  if(!inFile.is_open())  {  cout << "讀取文件失敗" << endl;  retVal = -1;  return (retVal);  }   // 載入數據  istream_iterator<float> begin(inFile); //按 float 格式取文件數據流的起始指針  istream_iterator<float> end; //取文件流的終止位置  vector<float> inData(begin,end); //將文件數據保存至 std::vector 中  cv::Mat tmpMat = cv::Mat(inData); //將數據由 std::vector 轉換為 cv::Mat   // 輸出到命令行窗口  //copy(vec.begin(),vec.end(),ostream_iterator<double>(cout,"/t"));   // 檢查設定的矩陣尺寸和通道數  size_t dataLength = inData.size();  //1.通道數  if (matChns == 0)  {  matChns = 1;  }  //2.行列數  if (matRows != 0 && matCols == 0)  {  matCols = dataLength / matChns / matRows;  }  else if (matCols != 0 && matRows == 0)  {  matRows = dataLength / matChns / matCols;  }  else if (matCols == 0 && matRows == 0)  {  matRows = dataLength / matChns;  matCols = 1;  }  //3.數據總長度  if (dataLength != (matRows * matCols * matChns))  {  cout << "讀入的數據長度 不滿足 設定的矩陣尺寸與通道數要求,將按默認方式輸出矩陣!" << endl;  retVal = 1;  matChns = 1;  matRows = dataLength;  }   // 將文件數據保存至輸出矩陣  matData = tmpMat.reshape(matChns, matRows).clone();   return (retVal); } 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产精品久久久久秋霞蜜臀| 日本aⅴ大伊香蕉精品视频| 日韩av不卡电影| 亚洲美女av电影| 日韩在线播放视频| 91麻豆国产精品| 亚洲天堂av在线免费观看| 狠狠操狠狠色综合网| 欧洲成人在线视频| 中文字幕日韩精品有码视频| 欧美日韩性视频在线| 国产午夜精品一区理论片飘花| 亚洲97在线观看| 国产日产亚洲精品| 欧美一区二区三区精品电影| 中文字幕日韩欧美精品在线观看| 国模极品一区二区三区| 亚洲福利视频免费观看| 亚洲精品一区中文| 久久久av电影| 久久精彩免费视频| 欧美性色19p| 国产精品一区二区三区免费视频| 国产自产女人91一区在线观看| 国产激情视频一区| 夜夜嗨av色一区二区不卡| 欧洲s码亚洲m码精品一区| 国产精品99蜜臀久久不卡二区| 成人免费午夜电影| 亚洲精品视频二区| 久久久免费精品| 正在播放国产一区| 国产69精品久久久久9| 欧美大胆a视频| 欧美丝袜一区二区| 精品国模在线视频| 成人午夜一级二级三级| 国产精品视频区| 亚洲精品999| 亚洲一区二区三区香蕉| 亚洲欧美日韩天堂一区二区| 亚洲国产精品视频在线观看| 日本国产高清不卡| 日本久久久a级免费| 国内精品久久久久| 日韩欧美高清在线视频| 国产成人一区二区| 国产精品一区二区性色av| 亚洲第一网中文字幕| 欧美日韩性生活视频| 欧美一级视频免费在线观看| 久久精品中文字幕一区| 久久久久久久影视| 欧美性猛交xxxx富婆| 成人黄色大片在线免费观看| 欧美日韩中文字幕| 国产欧美日韩综合精品| 高清欧美电影在线| 久久精品视频在线观看| 亚洲欧洲美洲在线综合| 亚洲国产精品va在线观看黑人| 亚洲成人黄色在线| 久久五月天综合| 91老司机精品视频| 欧美日产国产成人免费图片| 中文字幕日韩欧美精品在线观看| 欧美日韩一区二区在线播放| 国产一区二区视频在线观看| 91wwwcom在线观看| 国产精品福利观看| 久久久999精品免费| 成人福利网站在线观看| 欧美在线观看日本一区| 亚洲日韩欧美视频一区| 欧美激情一区二区久久久| 成人激情视频在线播放| 日韩视频免费中文字幕| 欧美日韩国产精品一区二区三区四区| 久久免费成人精品视频| 久久艳片www.17c.com| 成人中文字幕+乱码+中文字幕| 操日韩av在线电影| 久久久久久久久久久免费| 91精品国产免费久久久久久| 久久久视频在线| 国产一区二区三区视频在线观看| 亚洲综合小说区| 亚洲性av在线| 国产91在线播放| 日韩在线视频免费观看高清中文| 精品久久久一区| 欧美韩日一区二区| 美女扒开尿口让男人操亚洲视频网站| 96sao精品视频在线观看| 欧美日韩国产成人在线| 伊是香蕉大人久久| 日韩精品视频免费| 97视频在线播放| 这里精品视频免费| 欧美成人自拍视频| 91极品视频在线| 欧美老少做受xxxx高潮| 久久久久久久久久久人体| 国产精品免费视频xxxx| 久久久久久久久国产| 91精品国产成人www| 日本精品视频网站| 国产91精品黑色丝袜高跟鞋| 亚洲精品一区av在线播放| 亚洲片国产一区一级在线观看| 亚洲一区二区三区视频播放| 中文综合在线观看| 成年无码av片在线| 亚洲无亚洲人成网站77777| 国产999视频| 伊人亚洲福利一区二区三区| 精品色蜜蜜精品视频在线观看| 欧美成人精品在线观看| 欧美成人精品一区二区三区| 亚洲国产精彩中文乱码av在线播放| 欧美国产第二页| 91最新在线免费观看| 日本免费在线精品| 久久久久久久久久久成人| 亚洲高清在线观看| 欧美大片免费观看在线观看网站推荐| 在线中文字幕日韩| 97视频在线观看亚洲| 欧美大奶子在线| 久久久这里只有精品视频| 亚洲欧美激情精品一区二区| 精品久久久久久久久久国产| 亚洲天堂第一页| 亚洲精品www久久久| 国产日韩欧美日韩大片| 97婷婷大伊香蕉精品视频| 欧美日韩国产页| 国产亚洲精品成人av久久ww| 日韩电影中文 亚洲精品乱码| 亚洲美女精品成人在线视频| 在线一区二区日韩| 日本久久久久久| 97视频在线观看网址| 97在线视频免费播放| 久久伊人免费视频| 免费97视频在线精品国自产拍| 91国产美女视频| 亚洲自拍偷拍一区| 精品视频偷偷看在线观看| 91久久久久久久| 国产精品一区二区三| 日本国产高清不卡| 国产精品美女无圣光视频| 91色p视频在线| 亚洲国产成人91精品| 97视频在线观看免费高清完整版在线观看| 欧美激情二区三区| 国产精品v片在线观看不卡| 91av在线国产| 成人免费网站在线观看| 中文字幕日韩在线播放| 亚洲电影在线看| 成人激情视频网| 亚洲色图国产精品|