【OpenCV基础】形态学操作应用-提取水平与垂直线

📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨
📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852
📢:文章若有幸对你有帮助,可点赞 👍 收藏 ⭐不迷路🙉
📢:内容若有错误,敬请留言 📝指正!原创文,转载请注明出处


前言

形态学操作是一种数学图像处理技术,用于处理二值图像或灰度图像中的形状或结构。它基于图像的形态学特征,通过结构元素(也称为核)的运算来改变图像的形状、大小和拓扑结构。

形态学操作主要包括膨胀(dilation)、腐蚀(erosion)、开运算(opening)、闭运算(closing)、梯度运算(gradient)等。

  1. 膨胀(Dilation):通过滑动结构元素,将图像中的前景区域(白色区域)扩展以增加其大小。膨胀操作能够填补孔洞、联通分离的对象以及扩展边缘等。

  2. 腐蚀(Erosion):与膨胀操作相反,通过在滑动结构元素下检查图像并缩小前景区域,从而消除靠近边缘的像素。腐蚀操作能够分离物体、移除细小的细节并减小对象的大小。

  3. 开运算(Opening):先进行腐蚀操作,再进行膨胀操作。开运算能够除去小的斑点、边缘毛刺等,保留大致形状不变的物体。

  4. 闭运算(Closing):先进行膨胀操作,再进行腐蚀操作。闭运算能够填充小的孔洞、连接破碎的边缘、平滑物体的形状。

  5. 梯度运算(Gradient):通过在图像上应用膨胀和腐蚀操作,计算出物体边缘的像素。梯度运算常用于边缘检测和轮廓提取等应用中。

形态学操作通常基于结构元素的形状和大小,结构元素可以是线、圆、方形等。这些操作可以用于图像分割、边缘检测、物体提取、噪声去除等多种图像处理任务,以改善图像质量和提取特定的图像信息。
提取水平与垂直线的步骤如下:

1.转化为灰度图像

cvtColor(src,dst,color_BGR2GRAY)

2.转化为二值图像

adaptiveThreshold

3.定义结构元素

4.开操作 (腐蚀+膨胀)提取 水平与垂直线

代码

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

using namespace std;
using namespace cv;

int main()
{
		Mat src, grayImg, binImg, dest,dest1;
		//1、读取和显示图片
		src = imread("D:/images/morph01.png");
		if (src.empty()) {
			cout << "图片打开失败!" << endl;
			return -1;
		}
		imshow("原图像", src);

		//2、转为灰度图
		cvtColor(src, grayImg, COLOR_BGR2GRAY);
		imshow("灰度图", grayImg);

		//3、转为二值图像
		adaptiveThreshold(grayImg, binImg, 255, ADAPTIVE_THRESH_MEAN_C, THRESH_BINARY, 15, -2);
		imshow("二值图像", binImg);

		//4、构建结构元素
		Mat kernel = getStructuringElement(MORPH_RECT, Size(1, 20),Point(-1,-1));

		//5、开操作
		erode(binImg, dest, kernel);
		imshow("腐蚀后", dest);
		dilate(dest, dest1, kernel);
		//或是:morphologyEx(binImg, dest, MORPH_OPEN, kernel)等同于上面的先腐蚀和后膨胀;
		imshow("最终结果", dest1);
		waitKey(0);
	}

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌小超

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值