第十節、形態學操作(二)
開操作- open
先腐蝕後膨脹
可以去掉小的物件,假設物件是前景色,背景是黑色
閉操作-close
先膨脹後腐蝕(bin2)
可以填充小的洞(fill hole),假設物件是前景色,背景是黑色
形態學梯度- morphological gradient
膨脹減去腐蝕
又稱為基本梯度(其它還包括-內部梯度、方向梯度)
頂帽– top hat
頂帽 是原影象與開操作之間的差值影象
黑帽
黑帽是閉操作影象與源影象的差值影象
相關api
morphologyex(src, dest, cv_mop_blackhat, kernel);
- mat src – 輸入影象
- mat dest – 輸出結果
- int opt – cv_mop_open/ cv_mop_close/ cv_mop_gradient / cv_mop_tophat/ cv_mop_blackhat 形態學操作型別
**演示:
#include #include using namespace cv;
int main(int argc, char** ar**)
char input_win = "input image";
char output_win = "result image";
namedwindow(input_win, cv_window_autosize);
imshow(input_win, src);
mat gray_src;
cvtcolor(src, gray_src, cv_bgr2gray);//轉換為灰度影象
imshow("gray image", gray_src);
mat binimg;
adaptivethreshold(~gray_src, binimg, 255, adaptive_thresh_mean_c, thresh_binary, 15, -2);//轉換為二值影象
imshow("binary image", binimg);
// 水平結構元素
mat hline = getstructuringelement(morph_rect, size(src.cols / 16, 1), point(-1, -1));
// 垂直結構元素
mat vline = getstructuringelement(morph_rect, size(1, src.rows / 16), point(-1, -1));
// 矩形結構
mat kernel = getstructuringelement(morph_rect, size(3, 3), point(-1, -1));
mat temp;
erode(binimg, temp, kernel);//腐蝕
dilate(temp, dst, kernel);//膨脹
// morphologyex(binimg, dst, cv_mop_open, vline);//開操作
bitwise_not(dst, dst);//畫素取反操作
//blur(dst, dst, size(3, 3), point(-1, -1));//均值濾波
imshow("final result", dst);
waitkey(0);
return 0;
}
opencv 入門基礎
這是深圳大學於老師的文件裡的程式,就是為了鞏固基礎,加深對影象的理解。using namespace std using namespace cv int main for int i 0 i colorimage.rows i imshow 灰度圖 grayimage imshow 彩色圖 col...
OpenCV基礎入門(五)
理論 線性混合操作 線性影象混合公式 g x 1 a f0 x a f1 x a 0,1 其中a的取值範圍為0 1之間 相關api addweighted void cvaddweighted const cvarr src1,double alpha,const cvarr src2,double...
OpenCV基礎入門(六)
第六節 調整影象亮度與對比度 影象變換可以看作如下 畫素變換 點操作 g i,j af i,j 其中a 0,是增益變數。鄰域操作 區域 調整影象亮度和對比度屬於畫素變換 點操作 重要的api mat new image mat zeros image.size image.type 建立一張跟原影象...