本文感覺繞了一圈,但是不寫下來不開心詳細鏈結
// in c++
filestorage fs_xy0("xy0.xml", filestorage::write); // xy0.xml 是 儲存的檔案
fs_xy0 << "prob_idx" << xy[0]; // 將 mat xy 重定向到 xy0中
fs_xy0.release();
原因,matlab自帶的 xmlread,反正我的版本看不了介紹。工作區(看變數值的地方)也打不開,也看不了變數值。上面這個函式,把xml開啟成乙個struct。
從struct讀取資料
clear;
x = xml2struct( 'xy0.xml' );
x_str = x.
opencv_storage.
prob_idx.
data.text;
% 這裡是***的部分
% x_str是乙個字串,也就是乙個m_by_1的char變數
% str2double | str2num 可能沒法讀取z
% 因為z的格式沒按要求訪問
z=strsplit(x_str); % 按空格劃分成cell
fori = 1: length(z); cao(i)=str2double(cell2mat(z(i))); end
%***的操作,每個cell
%轉成mat,在轉成double
%cellfun(@str2num, cell)
cao(1) = ; % 第乙個資料是空的,刪除。看個人情況
pic = reshape(cao, str2num(x.
opencv_storage.
prob_idx.
rows.text), str2num(x.
opencv_storage.
prob_idx.
cols.text)); % 將data按 row,col reshape
上文總結:
憂傷,想把opencv裡的******flow用在matlab上。把flow(畫素偏移)這個cv::mat儲存為xml,然後用matlab開啟。 :( 開啟了,還不如原來的siftflow,雖然沒有調引數。
感覺繞路了,opencv好像可以在matlab開啟。實在不行還有mex。
opencv中的Mat詳解
1.初始化 mat the basic image container 最最基本的函式,所有在opencv中都是用mat形式來操作的。初始化乙個mat mat a,c a imread ar 1 imread color mat b a 複製a給b c a 賦值運算 mat d a,rect 10,...
opencv中Mat的屬性
類似cv 8uc1是mat的型別,其定義為type cv 位數 資料型別 通道數 cv 8uc1 0 cv 8uc2 8 cv 8uc3 16 cv 8uc4 24 depth 0 cv 8sc1 1 cv 8sc2 9 cv 8sc3 17 cv 8sc4 25 depth 1 cv 16uc1 ...
opencv中的Mat結構操作
從檔案中讀入一副影象 mat img imread filename 如果你讀入乙個jpg檔案,預設情況下將建立乙個3通道影象。如果你需要灰度 單通道 影象,使用如下語句 mat img imread filename,0 將影象儲存到乙個檔案 mat img imwrite filename 要獲...