主要函式
構建roi的兩種方式
1)使用rect函式,指定矩形的左上角座標和矩形的長寬來定義乙個矩形區域作為roi區域;
rect rect(cx - 100, cy - 100, 200, 200);
//先建立乙個矩形
mat roi = src(rect);
2)利用range來指定感興趣的行和列的範圍,range是指從初始索引到終止索引的(不包括終止索引)的一段連續序列;
mat imageroi = image(range(y,y+imageroi.rows),range(x, x+image.roi.cols));
range()
1.range是opencv中新加入的乙個類,該類有兩個關鍵的變數start和end;
2.range物件可以用來表示矩陣的多個連續的行或者多個連續的列
3.range表示範圍從start到end,包含start,但不包含end;
4.range類還提供了乙個靜態方法all(),這個方法的作用如同matlab中的「:」,表示所有的行或者所有的列
例子:1.建立乙個單位陣
mat a= mat::eye(10, 10, cv_32s);
2.提取第1到3列(不包括3)
mat b = a(range::all(),range(1,3));
3.提取b的第5至9行(不包括9)
c= b(range(5,9),range::all());
對roi進行操作
//規劃處roi區域
mat roi = src(rect);
//類似於繫結roi
imshow("roi", roi);
mat image = roi.clone();
roi.setto(scalar(255, 0, 0));
//roi區域操作賦值 會對映到原影象中
//沒有拷貝之前,roi實際上共享******image的記憶體,只是改變了一下roi的mat中的一些成員變數:
掩膜操作
//通過hsv空間操作篩選出指定範圍內的畫素
imshow("mask", mask);
mat person;
bitwise_not(mask, mask);
//反轉 之前篩選出來確定出來的畫素範圍內的畫素是255 不在範圍內的是0
imshow("mask1", mask);
bitwise_and(src2, src2, person, mask);
// // 使用位「與」運算來疊加面具
imshow("person", person);
mat result = mat::zeros(src2.size(), src2.type());
result.setto(scalar(255, 0, 0));
//底色全是藍色
OpenCV學習 掩膜
影象掩膜,用選定的影象 圖形或物體,對處理的影象 全部或區域性 進行遮擋,來控制影象處理的區域或處理過程。掩膜是一種影象濾鏡的模板,實用掩膜經常處理的是遙感影象。當提取道路或者河流,或者房屋時,通過乙個n n的矩陣來對影象進行畫素過濾,然後將我們需要的地物或者標誌突出顯示出來。這個矩陣就是一種掩膜。...
opencv 掩膜操作
saturate cast函式保證運算後全部歸一化在0 255之間,注意上面row,col的移動範圍是很有講究的,的四個邊緣行因為沒有完整的上下左右所以省略,然而在實際應用掩膜操作時候並不用到自己這麼複雜的寫 opencv中提供了乙個filter2d函式。mat kernel mat 3,3 0,1...
opencv矩陣掩膜操作
include include using namespace std using namespace cv intmain imshow 操作前 src double t gettickcount 定義掩膜矩陣 卷積核 掩膜可以自己定義,不同矩陣效果不同 0 1 0 1 5 1 掩膜可以自己定義,...