using namespace
cv;
// 建立乙個8mb矩陣
mat a(1000, 1000, cv_64f);
// 為同乙個矩陣建立另外乙個header
// 這是乙個即時操作,無論矩陣大小
mat b = a;
// 為a的第三行建立另外乙個header,同理沒有資料複製產生
mat c = b.row(3);
// 現在建立a的拷貝
mat d = b.clone();
// .將b的第五行複製到c,也即是,將a的第五行複製到a的第三行
b.row(5).copyto(c);
// 讓a和d共享同一矩陣,而原來的a仍然被b和c引用
a = d;
// 現在釋放b(不指向任何記憶體空間),但是原來的a仍然被c引用,儘管c僅僅引用一行
b.release();
// 最後,建立了乙個c的拷貝,且c指向了這個拷貝。這時,原來的a會被釋放,因為它不再被任何人引用。
c = c.clone();
指標:
t* ptr = new t(...);
使用ptrptr(new t(...));
或ptrptr = makeptr(...);
代替
影象型別的強制轉換:
8bit影象:i(
x,y)
=min
(max
(rou
nd(r
),0)
,255
) ,其它類推
**:i.at(y, x) = saturate_cast(r);
mat mtx(3, 3, cv_32f); // 3x3 浮點 1通道 矩陣
mat cmtx(10, 1, cv_64fc2); // 10x1 2通道 浮點 矩陣
// 10個復向量
mat img(size(1920, 1080), cv_8uc3); // 1080x1920(只有size有這種效果)3通道 8位無符號整數
mat grayscale(image.size(), cv_maketype(image.depth(), 1)); // image的大小和深度,1通道
有關巨集定義cv_***:
cv_8u,cv_8s:8位無符號數uchar;8位符號數schar
cv_16u,cv_16s:16位無符號數ushort;16位符號數short
cv_32s:32位符號數int
cv_32f,cv_64f:32位浮點數float;64位浮點數double
在上面巨集定義後面
c+1~4:代表有幾個通道,大於4或者編譯時不知道通道數的情況下使用c(n),或者cv_maketype(cv_8u, n)
。
cv_32fc1 == cv_32f, cv_32fc2 == cv_32fc(2) == cv_maketype(cv_32f, 2)
cv_maketype(depth, n) == ((depth&7) + ((n-1)<<3)
如mat, std::vector<>, matx<>, vec<> 或 scalar這類,你可以照常使用,如果函式需要額外的陣列而你又不想傳參的話,使用cv::noarray()
try
catch( cv::exception& e )
有以下丟擲錯誤的方法:
cv_error(errcode, description)
,cv_error_(errcode, printf-spec, (printf-args))
cv_assert(condition)
,cv_dbgassert(condition)
檢視->其他檢視->image watch->debug除錯
link views:對同一大小的圖固定檢視區域
學習筆記一
lisp 最重要的一種執行模式之一 repl that endless cycle of reading,evaluating,and printing is why it s called the read eval print loop or repl.第乙個lisp程式 在repl模式下執行l...
學習筆記 一
什麼是seo?搜尋引擎優化 search engine optimization,簡稱seo 是一種利用搜尋引擎的搜尋規則來提高目的 在有關搜尋引擎內的排名的方式。深刻理解是 通過seo這樣一套基於搜尋引擎的營銷思路,為 提供生態式的自我營銷解決方案,讓 在行業內佔據領先地位,從而獲得品牌收益。研究...
學習筆記一
今天兩節課,也就是兩個問題的分析裝配線排程問題和矩陣鏈相乘ai,j中的 i,j 分別表示的是第 i 條線路的第 j 個步驟,每個線路每條步驟都有不同的用時,還有t i j中的 i,j 表示的就是從第 i 條線路第 j 步到達另外一條線路的第 j 1 步要用的時間,我們可以用如下 表示每一步花費的時間...