openCV的mat封裝進json

2021-08-24 20:23:57 字數 1058 閱讀 7849

任務要求:

客戶端把轉成opencv的mat型別,封裝進json,發給服務端,服務收到後解析json,再把mat把存成;用c++實現

解決方案:

傳送和接收就不寫了,這裡只展示下如何封裝以及如何解析。

用到的標頭檔案:1.nlohmann::json的json.hpp;2.csdn上找的用於base64編碼的base64.h

1)讀取並封裝

json j;

mat image = imread("d:\\4.jpg"); //存放自己影象的路徑

//imshow("顯示影象", image);

j["mat"] = base64_encode(c, str_encode.size());

**是參考(c++ opencv imencode imdecode string轉換)自己的改動嘗試出來,這裡有個疑問,按照這個**str_encode就是乙個string型別的變數,但是直接賦給json就會報錯(異常: nlohmann::detail::type_error,位於記憶體位置 0x0000009da751d568 處),這是為什麼??所以又進行了一次base64編碼(不知道有沒有其他辦法),因為base64_encode這個函式的第乙個引數要求是const char*,所以做了一下型別轉換,因為對c++資料型別的不了解,這幾天一直被char*、const char*、unsigned char。。。。這些型別折磨

2)解析並儲存

for (json::iterator it = j.begin(); it != j.end(); ++it) 

}

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賦值 opencvmat賦值

cv mat depth dims channels step data elemsize mat 矩陣中資料元素的位址計算公式 addr mi0,i opencv mat 類 cv mat depth dims channels.本文主要講講怎樣對 mat 矩陣進行 mask 操作,其實也就是對 ...

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 ...