圖像處理之形態學梯度運算

1.認識形態學梯度

對二值圖像進行這一操作,可將圖塊的邊緣突出出來,故可用來保留物體邊緣輪廓。

1.1處理過程

將膨脹後的原圖像和腐蝕後的原圖像做差,可以得到形態學梯度。

1.2優點

可以突出高亮區域的外圍,因為它是區域的膨脹減去區域的收縮。

2.OpenCV函數

<code>void morphologyEx(InputArray src,
OutputArray dst,
int op,
InputArray kernel,
Point anchor = Point(-1, -1),
int iterations = 1,
int borderType = BORDER_CONSTANT,
const Scalar& borderValue = morpologyDefaultBorderValue());/<code>

參數如下:

  • src:輸入圖像,即原圖像,填 Mat 類的對象即可。
  • dst:目標圖像,需要和原圖片有一樣的尺寸和類型。
  • op:形態學運算的類型。
  • kernel:膨脹操作的核。當為 NULL 時,表示的是使用參考點位於中心,大小 3×3 的核。
  • anchor:錨點的位置,默認位於中心。
  • iterations :迭代使用 dilate() 的次數,默認值為 1。
  • borderType:邊界拓展的方法。
  • borderValue:當邊界為常數時的邊界值,有默認值,一般不用管。
圖像處理之形態學梯度運算

3.C++實現

<code>//--------------------------------------【程序說明】-------------------------------------------
//\t\t程序描述:用morphologyEx進行形態學梯度運算
//\t\t開發測試所用操作系統: Windows 10 64bit
//\t\t開發測試所用IDE版本:Visual Studio 2017
//\t\t開發測試所用OpenCV版本:\t3.4
//\t\t2020年3月 Created by @DL小寶
//\t\t2020年3月 Revised by @DL小寶
//------------------------------------------------------------------------------------------------

//---------------------------------【頭文件、命名空間包含部分】----------------------------
//\t\t描述:包含程序所使用的頭文件和命名空間
//------------------------------------------------------------------------------------------------
#include <opencv2>
#include <opencv2>
#include <opencv2>
using namespace cv;
//-----------------------------------【main( )函數】------------------------------------------
//\t\t描述:控制檯應用程序的入口函數,我們的程序從這裡開始
//-----------------------------------------------------------------------------------------------
int main()
{
\t//載入原始圖
\tMat image = imread("xtx.jpg"); //工程目錄下應該有一張名為xtx.jpg的素材圖
\t//創建窗口
\tnamedWindow("【原始圖】形態學梯度");
\tnamedWindow("【效果圖】形態學梯度");
\t//顯示原始圖
\timshow("【原始圖】形態學梯度", image);
\t//定義核

\tMat element = getStructuringElement(MORPH_RECT, Size(15, 15));
\t//進行形態學操作
\tmorphologyEx(image, image, MORPH_GRADIENT, element);
\t//顯示效果圖
\timshow("【效果圖】形態學梯度", image);
\twaitKey(0);
\treturn 0;
}/<opencv2>/<opencv2>/<opencv2>/<code>

4.可視化

可以看出,輪廓提取的效果還是不錯滴!

圖像處理之形態學梯度運算


圖像處理之形態學梯度運算


分享到:


相關文章: