考慮到篇幅以及筆記的連接性不強的原因,項目設計筆記每節添加十條~~
11、按實際需要進行排序操作(見示例代碼圖1),根據所需進行排序的某個數據類型的屬性作為排序規則的參數,然后再將其寫入sort()函數即可。另外,sort()函數的第一、二個參數需要時指針類型。
?12、cv::rectangle()可實現在圖上繪制矩形,其有兩種構造函數,如圖2所示
13、Rect數據類型的結構:從網上截下來了一張圖,如圖3,簡潔明了:)
14、內聯函數:在函數定義前家上關鍵字inline
? ? ? 在程序的編譯過程中,編譯器將程序中出現內聯函數的調用表達式用內聯函數的的函數體來進行替換,此時便不會出現程序轉移的問題,但會增加程序的代碼量。故內聯函數是一目標代碼的增加為代價來換取時間的節省。
15、向量添加元素
? ? ?若聲明了一個向量類型的變量A,若需向其添加元素,則不能直接用A[i]的方式進行訪問,而應該用A.push_back(ELEMENT)的方式進行添加。另外可以利用A.erase()來刪除向量中的某個位置的元素。A.pop_back()是刪除最后一個元素,類似于棧的操作。
16、對一幅圖像進行一次或多次開(閉)操作的效果是一樣的。在選取結構元素時,相對更大的size,可以更好的消除連接帶。
17、MSER:基于分水嶺分割算法的處理,對微弱邊緣也能有較好的效果
18、計算一幅圖片中所有像素點的均值及方差的函數,如圖4,或單獨計算,如圖5
19、讀取一個文本文件中的最后一個數字
【在這兒就需要補充c++中文件流的相關操作了,其中a、b可以合并成一步來實現。
? a、定義文件流對象 ?b、打開文件 ?c、讀寫文件[提取/插入運算符] ?d、關閉文件】
因為是需要讀最后一個數字,第一次嘗試是使用EOF為判斷依據,即用get讀取文件信息時,判斷其返回值是否為EOF(-1),若是則表示已讀到文件末端。但此時出現的問題便是,數字的位數是不確定的,故不能以最后一個字符為依據來評判。第二次嘗試則是使用文件隨機讀寫的方式根據某個固定字符的位置來進行文件的讀取操作,直接參看代碼會更直觀,如圖6
注:文件的隨機寫操作是使用seekp(位移量n,[參照位置]),其中參照位置可取:cur,beg,end
? ? ? ?tellg()函數可用來返回文件當前讀的位置,故先用seekg(0,ios::end)將其指向文末,再用tellg()獲取其位置,此位置即為文件的大小。
20、向文本中換行添加信息,圖7