OpenCV 形态学基础

开运算:可以消除暗背景下的较亮区域

闭运算:可以消除亮背景下的较暗区域

顶帽:用原图减去开运算结果就可以得到原图中灰度较亮的区域,所以又称白顶帽变换。还有一个很重要的作用,就是校正不均匀光照。

底帽:用原图减去闭运算结果就可以得到原图中灰度较暗的区域,所有又称黑底帽变换。



#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/opencv.hpp>

using namespace std;
using namespace cv;


// 开操作:先腐蚀后膨胀
// 可以去掉小的对象(对象为白色,背景为黑色)

// 闭操作:先膨胀后腐蚀
// 可以填充小的洞

// 形态学梯度 Morphological Gradient
// 膨胀减去腐蚀 又称为基本梯度(其他还包括 内部梯度、方向梯度)

// 顶帽 top hat
// 原图像与开操作之间的差值图像

// 黑帽 black hat
// 闭操作图像与原图像的差值图像


int main() {
    Mat src1, src2, gray_src, dst;
    src1 = imread("/Users/apple/Desktop/birth.jpg", IMREAD_COLOR);
    //src2 = imread("/Users/apple/Desktop/test2.jpg", IMREAD_COLOR);
    if (src1.empty()) { // if (!src.data())
        cout << "could not load image..." << endl;
        return -1;
    }
    imshow("input", src1);
    
    
//    Mat kernel = getStructuringElement(MORPH_RECT, Size(1, 11));
//    morphologyEx(src1, dst, CV_MOP_DILATE, kernel);
    
    GaussianBlur(src1, dst, Size(99, 3), 100, 1);
    //blur(src1, dst, Size(99, 1));
    
    imshow("output", dst);
    waitKey(0);
    
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值