每天都在苦苦掙扎

2021-10-06 18:20:41 字數 2237 閱讀 1339

每天都在苦苦掙扎

1.mat

void pre_process(mat& white_img, mat& white_img_b)
mat是opencv2.0推出的處理影象的新的資料結構,現在越來越有趨勢取代之前的cvmat和lplimage,相比之下mat最大的好處就是能夠更加方便的進行記憶體管理,不再需要程式設計師手動管理記憶體的釋放。opencv2.3中提到mat是乙個多維的密集資料陣列,可以用來處理向量和矩陣、影象、直方圖等等常見的多維資料。 之前的影象一般都是用iplimage*表示

mat, const mat, mat &,mat &, const mat &的區別

mat, copy傳遞,不會改變外部變數的mat。

mat &, reference傳遞,函式內部修改將會改變外部。

const mat, copy傳遞,在函式內,不會被修改,也不會影響到外部的變數。

const mat &, reference傳遞,確保在函式內外,都不會被修改。

2.if (white_img.empty()||white_img.type() != cv_8uc1)

cv_8uc1 //8表示8位 unsigned int 最後的1、2、3表示通道數

cv_32sc1 //32位int型別

3.種子填充演算法(提取影象特徵)

乙個將指定不規則區域內部畫素填充為填充色的過程

又稱為邊界填充演算法。其基本思想是:從多邊形區域的乙個內點開始,由內向外用給定的顏色畫點直到邊界為止。如果邊界是以一種顏色指定的,則種子填充演算法可逐個畫素地處理直到遇到邊界顏色為止。

假設已知畫素區域的定義

內部定義,區域內部所有畫素具有同一種顏色或值,而區域外的所有畫素具有另一種顏色或值。——泛填充演算法

邊界定義,區域邊界上所有畫素均具有特定的值或顏色。區域內部的所有畫素均不取這一特定值。然而,邊界外的畫素則可具有與邊界相同的值。——邊界填充演算法

會感覺挺慢的

4.if (labelimg.at(i,j) == 1)

at()函式

對於單通道影象"picture1",picture1.at(i,j)就表示在第i行第j列的畫素值。

對於多通道影象如rgb影象"picture2",可以用picture2.at(i,j)[c]來表示某個通道中在(i,j)位置的畫素值。`

5.使用標準庫的棧和佇列時,先包含相關的標頭檔案

#include

#include

定義棧如下:

stack stk;

定義佇列如下:

queue q;

vector是向量型別,可以容納許多態別的資料,因此也被稱為容器

(可以理解為動態陣列,是封裝好了的類)

進行vector操作前應新增標頭檔案#include

一種順序容器,支援隨機訪問。vector是一塊連續分配的記憶體,從資料安排的角度來講,和陣列極其相似,不同的地方就是:陣列是靜態分配空間,一旦分配了空間的大小,就不可再改變了;而vector是動態分配空間,隨著元素的不斷插入,它會按照自身的一套機制不斷擴充自身的容量。

6.push_back 將乙個新的元素加到vector的最後面,位置為當前最後乙個元素的下乙個元素,新的元素的值是val的拷貝(或者是移動拷貝)

point_set.push_back(neighborpixels.front());
push 函式介紹

stack::push();//在棧頂增加元素

queue::push();//將x 接到佇列的末端。

neighborpixels.push(point(i,j));
7.front函式

函式原型:

reference front();

const_reference front();

功能:返回當前vector容器中起始元素的引用

point_set.push_back(neighborpixels.front());
8.point2f

數字(1,2,3)代表的是這個點的維度資訊,字母(i,f,d,l)代表該點的型別,整形、浮點型、雙精度、long (例如,long int 長整形)

9.back函式

函式原型:

reference back();

const_reference back();

功能:返回當前vector容器中末尾元素的引用

每天都在成長

正如上篇所述,週六考完之後,大家為如此多 的選擇激動興奮著。我就是其中乙個,考完之後的興奮滴做下一周的打算,比如 但是計畫趕不上變化,週日早晨醒來一切都變了,啊哈,原來的計畫不得不泡湯,激動以及興奮的心情一掃而光,換來的是另一種態度吧。由於最近一段時間,機房舒適的環境讓我忘了自我,讓我忘了警惕,開始...

測試每天都在做些啥

1 需求評審該做什麼 需求評審範圍比較廣,不同環境不同階段,需求評審的參與率會略微不同。在對應用業務非常熟悉的情況,且崗位在公司比較重要,如測試經理或測試組長,在需求分析階段就會參與評審,分析需求的合理性以及是否潛在隱患,有一定的技術經驗,還能評估出開發實現難易程度以及開發周期 當然這是後話,為專案...

我每天都在github上做些什麼

維護自己的repo,思考改進,編碼,提交 解決issue。自己寫乙個開源專案是最好的學習過程。會有人去關注你的專案,給你貢獻 和你用 進行交流。而對於對於自己,你的專案有人關注,會激勵自己不斷的思考如何做到更好。我follow一些熱門repo的作者,有時間會去看看他們star了哪些repo,經常能在...