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
0x
0y0
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 );
其中兩個函式的src和dst含義相同,都是指輸入影象,輸出影象;
引數 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 組織 陣列 ...
制度梳理的體會(一)
老闆一直都想對公司的制度,做乙個梳理,理清哪些制度已基本事實廢止,哪些已有但需要修訂,還需補充哪些制度等,即 從內部需要出發,來梳理公司的規章制度。考慮到公司的主要定位在工程專案方面,因此,突破口就選在,建立一套較完整的全生命週期的工程專案管理制度。現就將這套制度制定過程中的體會,做一簡單的總結。首...