Halcon形态学梯度

本文介绍了形态学梯度的概念,并通过一个使用OpenCV库的C++代码示例展示了如何计算基本梯度、内梯度和外梯度。代码中涉及了图像的读取、灰度转换、腐蚀、膨胀以及差分操作,最终得到二值图像。通过形态学梯度,可以有效地检测图像边界和细节。

形 态 学 梯 度 形态学梯度

1.视频教程:
B站、网易云课堂、腾讯课堂
2.代码地址:
Gitee
Github
3.存储地址:
Google云
百度云:
提取码:

1.形态学梯度

基本梯度—>膨胀减去腐蚀之后的结果
内梯度—>原图减去腐蚀之后的结果
外梯度—>膨胀减去原图的结果

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

using namespace cv;
using namespace std;

int main(int argc, char** argv) {
	Mat src = imread("E:/cats.jpg");

	Mat gray, binary;
	cvtColor(src, gray, COLOR_BGR2GRAY);
	imshow("input", gray);

	Mat basic_grad, inter_grad, exter_grad;
	Mat kernel = getStructuringElement(MORPH_RECT, Size(3, 3), Point(-1, -1));
	morphologyEx(gray, basic_grad, MORPH_GRADIENT, kernel, Point(-1, -1), 1);
	imshow("basic gradient", basic_grad);

	Mat dst1, dst2;
	erode(gray, dst1, kernel);
	dilate(gray, dst2, kernel);

	subtract(gray, dst1, inter_grad);
	subtract(dst2, gray, exter_grad);
	imshow("internal gradient", inter_grad);
	imshow("external gradient", exter_grad);

	threshold(basic_grad, binary, 0, 255, THRESH_BINARY | THRESH_OTSU);
	imshow("binary", binary);


	waitKey(0);
	destroyAllWindows();
	return 0;
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值