梳理程式的筆記(一)

2021-09-05 09:38:36 字數 4670 閱讀 9337

opencv 中的mat,和matlab中的mat資料型別是一樣的含義

opencv中的cv_32fc1的含義是,opencv 的32位float資料使用通道(channel)1

c++ string中的

string str; 

str.find() //返回查詢字元所在的位置數

str.substr(0,4) //獲得字串0-4位置的字串內容,例如"hello,world",則0-4則為"hell"

c++中的 c.str() 和python的一樣,講其他型別轉化成c語言字串型別

c++中的ifstream是用來讀取整個檔案的乙個庫類。

c++在stream流型別中,有乙個成員函式good().用來判斷當前流的狀態是否正常。

c++中map的使用,

1 宣告乙個map容器------- mapdata

2宣告乙個對應1中型別的map的迭代器 -------map::iterator iter

成員函式

含義begin()

返回指向map頭部的迭代器

clear()

刪除所有元素

count()

返回指定元素出現的次數

empty()

如果map為空則返回true

end()

返回指向map末尾的迭代器

equal_range()

返回特殊條目的迭代器對

erase()

刪除乙個元素

find()

查詢乙個元素

insert()

插入元素

max_size()

返回可以容納的最大元素個數

size()

返回map中元素的個數

swap()

交換兩個map

get_allocator()

返回map的配置器

key_comp()

返回比較元素key的函式

lower_bound()

返回鍵值》=給定元素的第乙個位置

max_size()

返回可以容納的最大元素個數

rbegin()

返回乙個指向map尾部的逆向迭代器

rend()

返回乙個指向map頭部的逆向迭代器

upper_bound()

返回鍵值》給定元素的第乙個位置

value_comp()

返回比較元素value的函式

3 插入資料

​ 其中 pair和 make_pair 有first和second域,可以直接訪問,

​ make_paire是返回乙個pair的資料。

​ 3.1 data[key]=vaule

​ 3.2 data.insert(pair(key, value))

​ 3.3 data.insert(make_pair(key, value))

4 刪除和查詢資料

data.find(key)    //通過key來查詢

data.erase(key) //刪除

//或者

data.erase(iter)

如果查詢時迭代器的鍵值不存在,會返回data.end()的值

c++使用map的迭代器遍歷比較方便;

我們都知道可以用下標運算來訪問string物件和vector物件。而另外還有一種更通用的方法也可以實現這樣的方法-----迭代器(iterator)類似於指標,迭代器也提供了對物件的間接訪問。就迭代器而言,其物件是容器中的元素或者string中的字元。使用迭代器可以訪問某個元素,迭代器也能從乙個元素移動到另外乙個元素。迭代器有有效和無效之分,有效的迭代器指向某個元素或者容器中尾元素的下乙個位置。其他情況均為無效。

和指標不一樣的是,迭代器不是使用取址符,而是使用begin和end成員。

opencv mat資料型別指標ptr的使用

mat.ptr(row)[col]

返回的資料型別和一致,通過指標ptr定位(row)[col]位置的資料,該資料的型別要和一致

c++中的 atof ( ascii to floating point numbers)函式在中,將字串轉化成雙精度的浮點數。

1,相機內參矩陣,外參矩陣

內參矩陣:

(1) [f

xsx0

0fyy

0001

]\left[ \begin f_x && s && x_0 \\ 0 && f_y && y_0 \\ 0 && 0 && 1 \\ \end \right] \tag

⎣⎡​fx​

00​​

sfy​

0​​x

0​y0

​1​⎦

⎤​(1

)式(1)中,f

xf_x

fx​ 和 f

yf_y

fy​ 焦距引數; x

0x_0

x0​ 和 y

0y_0

y0​ 為主點偏移,相機的主軸是與影象平面垂直切穿過真空的線,與影象平面的交點成為主點,主點偏移就是主點位置相對於影象平面的位置;s為座標軸傾斜引數,理想情況下為0,即座標軸不傾斜。

opencv中對於影象的放縮使用 resize() 和 cvresize()

//resize函原型

cv_exports_w void resize( inputarray src, outputarray dst,

size dsize, double fx=0, double fy=0,

int interpolation=inter_linear );

//cvresize函式原型

void cvresize( const cvarr* src, cvarr* dst, int interpolation=cv_inter_linear );

其中兩個函式的srcdst含義相同,都是指輸入影象輸出影象

引數 interpolation是指差值方法,

可選引數

含義inter_linear

雙線性差值 (預設使用)

inter_area

區域差值演算法,使用象素關係重取樣時,影象抽取的首選方法。當影象縮小時候,該方法可以避免波紋出現。當影象放大時,類似於 inter_nearest 方法

inter_cubic

立方差值

inter_nearest

最鄰近插值演算法

inter_lanczos4

lanczos插值(超過8x8領域的插值演算法)

inter_max

用於插值的掩模板

warp_inverse_map

標誌位,反變換

warp_fill_outliers

標誌位,用於填充目標影象的畫素值,如果其中的一些值對應原影象的異常值,那麼這些值講被設為0

resize()中的 dsize表示放縮後的尺寸,(fx,fy)表示水平方向上的縮放係數和垂直方向上的縮放係數,一般設為0,但是dsize和(fx,fy)不能同時為0。

注意opencv中的seize()d的大小尺寸資訊是 (列,行)

size(col, row)

opencv中的cvtcolor()用於將乙個顏色空間轉換到另乙個顏色空間

void cv::cvtcolor(

cv::inputarray src, // 輸入序列

cv::outputarray dst, // 輸出序列

int code, // 顏色對映碼

int dstcn = 0 // 輸出的通道數 (0='automatic')

);

opencv預設的彩色影象的顏色空間是bgr

code

引數rgb和bgrcolor_bgr2rgb, color_rgb2bgr, color_rgba2bgra, color_bgra2rgba

向rgb和bgr影象中增添alpha通道color_rgb2rgba, color_bgr2bgra

從rgb和bgr影象中去除alpha通道color_rgba2rgb, color_bgra2bgr

從rbg和bgr顏色空間轉換到灰度空間color_rgb2gray,color_bgr2gray,color_rgba2gray,color_bgra2gray

等,僅列舉部分。

為什麼要轉化到灰度值????

因為演算法值關注於其中的一種顏色,因此通過二值化講影象中的其他色彩調成0,通過設定閾值化(threshold),進行二值影象的處理與分析,首先要把灰度影象二值化,得到二值化影象,這樣子有利於再對影象做進一步處理時,影象的集合性質只與畫素值為0或255的點的位置有關,不再涉及畫素的多級值,使處理變得簡單,而且資料的處理和壓縮量小。為了得到理想的二值影象,一般採用封閉、連通的邊界定義不交疊的區域。所有灰度大於或等於閥值的畫素被判定為屬於特定物體,其灰度值為255表示,否則這些畫素點被排除在物體區域以外,灰度值為0,表示背景或者例外的物體區域。

spark梳理筆記

梳理一下spark中關於併發度涉及的幾個概念file,block,split,task,partition,rdd以及節點數 executor數 core數目的關係。輸入可能以多個檔案的形式儲存在hdfs上,每個file都包含了很多塊,稱為block。當spark讀取這些檔案作為輸入時,會根據具體資...

LinuxIO基礎筆記梳理

在c庫里io的相關操作 回顧io介面 fopen fclose,fwrite,fread,fseek linux下的檔案描述符 非負整數,檔案的操作控制代碼,憑什麼數字可以操作檔案 struct file 陣列 在程序中會開啟很多檔案,程序要對檔案進行管理 描述 struct file 組織 陣列 ...

制度梳理的體會(一)

老闆一直都想對公司的制度,做乙個梳理,理清哪些制度已基本事實廢止,哪些已有但需要修訂,還需補充哪些制度等,即 從內部需要出發,來梳理公司的規章制度。考慮到公司的主要定位在工程專案方面,因此,突破口就選在,建立一套較完整的全生命週期的工程專案管理制度。現就將這套制度制定過程中的體會,做一簡單的總結。首...