形态学:提取横线、竖线

本文介绍了如何使用OpenCV通过形态学操作提取图像中的横线和竖线。通过先腐蚀后膨胀的过程,配合不同尺寸的核,可以有效地区分和提取图像中的线条。具体步骤包括将图像转化为灰度,应用自适应阈值,以及利用特定大小的核进行腐蚀和膨胀操作。此外,还详细解释了`cv::adaptiveThreshold`和`cv::Mat::copyTo`这两个关键API的功能和参数含义。
摘要由CSDN通过智能技术生成

原理

  1. 提取横线:
    在这里插入图片描述
    经过先腐蚀,再膨胀,得到直线。



  1. 提取竖线:
    在这里插入图片描述
    经过先腐蚀,再膨胀,得到竖线。



代码

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

using namespace cv;
using namespace std;

void show_wait_destroy(const char* winname, cv::Mat image)
{
   
	static uchar i=0;
	imshow(winname,image);
	cv::moveWindow(winname,0,(++i)*(200));
}

int main(void)
{
   
	
	Mat src = imread("../res/src.png");
	if(src.empty())
	{
   
		cout << "load the image failed" << endl;
	}


	Mat gray;
	if(src.channels() == 3)
	{
   
		cv::cvtColor(src,gray,cv::COLOR_BGR2GRAY);
	}
	else
	{
   
		gray = src;
	}

//转化成二值图像
	Mat bw;
	cv::adaptiveThreshold(~gray,bw,255,cv::ADAPTIVE_THRESH_MEAN_C,cv
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值