OpenCVの経路探索 - 形態学的画像処理(拡大、腐食、開口部、開閉動作)

収縮と膨張は、最も基本的な形態学的な操作です。

収縮と膨張はの白い部分(のハイライト)の目的です。

膨張はレンダリングがより元のハイライト領域よりも有しており、画像のハイライト「フィールド拡張」で実行され、腐食がビーイングが侵食アートワーク内の領域を強調表示され、元の図のハイライト領域よりも小さい効果を有します。

うねり

拡張操作は、画像光を部分的に拡大され、暗い部分が狭い直感的に画像から、極大値を求めています。

#include<opencv2\opencv.hpp>   
#include<opencv2\highgui\highgui.hpp>

using namespace std;
using namespace cv;

//膨胀
int main()
{
    Mat img = imread("lol1.jpg");
    namedWindow("原始图", WINDOW_NORMAL);
    imshow("原始图", img);
    Mat out;
    //获取自定义核
    Mat element = getStructuringElement(MORPH_RECT, Size(15, 15)); //第一个参数MORPH_RECT表示矩形的卷积核,当然还可以选择椭圆形的、交叉型的
    //膨胀操作
    dilate(img, out, element);
    namedWindow("膨胀操作", WINDOW_NORMAL);
    imshow("膨胀操作", out);
    waitKey(0);

}

見ることができる、元の画像が明るい部分を拡大し、暗い部分が低減されます。

腐食

#include<opencv2\opencv.hpp>   
#include<opencv2\highgui\highgui.hpp>

using namespace std;
using namespace cv;

//腐蚀
int main()
{
    Mat img = imread("lol1.jpg");
    namedWindow("原始图", WINDOW_NORMAL);
    imshow("原始图", img);
    Mat out;
    //获取自定义核
    Mat element = getStructuringElement(MORPH_RECT, Size(15, 15)); //第一个参数MORPH_RECT表示矩形的卷积核,当然还可以选择椭圆形的、交叉型的
    //腐蚀操作
    erode(img, out, element);
    namedWindow("腐蚀操作", WINDOW_NORMAL);
    imshow("腐蚀操作", out);
    waitKey(0);

}

明暗部の見ることができる、元の画像が拡大された部分が低減されます。

オープン操作:小さなオブジェクトを除去するために、第1の再膨張をエッチング

操作を閉じる第一拡大及び腐食、小さなブラックホールを排除するため

形態学的勾配:線膨張の差は、図の平面図であり、物体のエッジプロファイルを保持します。

トップキャップ:原画像と図の開動作との間の差、プラークの数を分離するための点灯率に隣接。

ブラックハット:隣接点より単離されたプラークより暗いの数を、原画像との差分を閉じて計算します。

OpenCVのgetStructuringElementは、限り、我々は適切な処理パラメータには、この関数を渡すように、それは適切な行動も、使いやすことができる非常に良い機能があります。

マクロ定義に対応する動作について以下に示します。

#include<opencv2\opencv.hpp>   
#include<opencv2\highgui\highgui.hpp>

using namespace std;
using namespace cv;

//高级形态学处理
int main()
{
    Mat img = imread("lol1.jpg");
    namedWindow("原始图", WINDOW_NORMAL);
    imshow("原始图", img);
    Mat out;
    //获取自定义核
    Mat element = getStructuringElement(MORPH_RECT, Size(15, 15)); //第一个参数MORPH_RECT表示矩形的卷积核,当然还可以选择椭圆形的、交叉型的
        
    //高级形态学处理,调用这个函数就可以了,具体要选择哪种操作,就修改第三个参数就可以了。这里演示的是形态学梯度处理
    morphologyEx(img, out, MORPH_GRADIENT, element);
    namedWindow("形态学处理操作", WINDOW_NORMAL);
    imshow("形态学处理操作", out);
    waitKey(0);

}

形態学的勾配処理

これは、トップハット作用効果であります

公開された352元の記事 ウォンの賞賛115 ビュー130 000 +

おすすめ

転載: blog.csdn.net/Aidam_Bo/article/details/104469163