【OpenCV基础】形态学操作应用-提取图片中文字、水平与垂直线

本文主要是介绍【OpenCV基础】形态学操作应用-提取图片中文字、水平与垂直线,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

文章目录

  • 一、提取图片中的文字
    • 1.步骤
    • 2.全部代码
    • 3.效果展示
  • 二、提取水平与垂直线
    • 1.转化为灰度图像
    • 2.转化为二值图像
    • 3.定义结构元素
    • 4.开操作 (腐蚀+膨胀)
    • 5.代码演示
    • 6.效果展示


一、提取图片中的文字

1.步骤

1.读取原图
2.灰度化
3.二值化
4.膨胀
5.腐蚀
6.像素值取反

2.全部代码

#include<iostream>
#include<opencv2/opencv.hpp>using namespace std;
using namespace cv;int main(){	Mat src, src_gray, src_bin, src_erode, kernerl, src_dilate, src_bitwise;src = imread("D:/images/morph02.png");if (src.empty()){cout << "could not load image..." << endl;return -1;}imshow("原图", src);cvtColor(src, src_gray, COLOR_BGR2GRAY);imshow("src_gray", src_gray);threshold(src_gray, src_bin,150,255,THRESH_BINARY);imshow("src_bin", src_bin);kernerl = getStructuringElement(MORPH_RECT, Size(3, 3), Point(-1, -1));dilate(src_bin, src_dilate, kernerl);imshow("src_dilate", src_dilate);erode(src_dilate, src_erode, kernerl);imshow("src_erode", src_erode);bitwise_not(src_erode, src_bitwise);imshow("src_bitwise", src_bitwise);waitKey(0);return 0;
}

3.效果展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、提取水平与垂直线

1.转化为灰度图像

cvtColor(src,dst,color_BGR2GRAY)

2.转化为二值图像

adaptiveThreshold

3.定义结构元素

4.开操作 (腐蚀+膨胀)

5.代码演示

#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);}

6.效果展示

在这里插入图片描述

这篇关于【OpenCV基础】形态学操作应用-提取图片中文字、水平与垂直线的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/241833

相关文章

Oracle 数据库数据操作如何精通 INSERT, UPDATE, DELETE

《Oracle数据库数据操作如何精通INSERT,UPDATE,DELETE》在Oracle数据库中,对表内数据进行增加、修改和删除操作是通过数据操作语言来完成的,下面给大家介绍Oracle数... 目录思维导图一、插入数据 (INSERT)1.1 插入单行数据,指定所有列的值语法:1.2 插入单行数据,指

基于 HTML5 Canvas 实现图片旋转与下载功能(完整代码展示)

《基于HTML5Canvas实现图片旋转与下载功能(完整代码展示)》本文将深入剖析一段基于HTML5Canvas的代码,该代码实现了图片的旋转(90度和180度)以及旋转后图片的下载... 目录一、引言二、html 结构分析三、css 样式分析四、JavaScript 功能实现一、引言在 Web 开发中,

Python如何去除图片干扰代码示例

《Python如何去除图片干扰代码示例》图片降噪是一个广泛应用于图像处理的技术,可以提高图像质量和相关应用的效果,:本文主要介绍Python如何去除图片干扰的相关资料,文中通过代码介绍的非常详细,... 目录一、噪声去除1. 高斯噪声(像素值正态分布扰动)2. 椒盐噪声(随机黑白像素点)3. 复杂噪声(如伪

Python中图片与PDF识别文本(OCR)的全面指南

《Python中图片与PDF识别文本(OCR)的全面指南》在数据爆炸时代,80%的企业数据以非结构化形式存在,其中PDF和图像是最主要的载体,本文将深入探索Python中OCR技术如何将这些数字纸张转... 目录一、OCR技术核心原理二、python图像识别四大工具库1. Pytesseract - 经典O

Python中提取文件名扩展名的多种方法实现

《Python中提取文件名扩展名的多种方法实现》在Python编程中,经常会遇到需要从文件名中提取扩展名的场景,Python提供了多种方法来实现这一功能,不同方法适用于不同的场景和需求,包括os.pa... 目录技术背景实现步骤方法一:使用os.path.splitext方法二:使用pathlib模块方法三

CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比

《CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比》CSS中的position属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布... css 中的 position 属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布局和层叠关

SpringBoot3应用中集成和使用Spring Retry的实践记录

《SpringBoot3应用中集成和使用SpringRetry的实践记录》SpringRetry为SpringBoot3提供重试机制,支持注解和编程式两种方式,可配置重试策略与监听器,适用于临时性故... 目录1. 简介2. 环境准备3. 使用方式3.1 注解方式 基础使用自定义重试策略失败恢复机制注意事项

使用Python和OpenCV库实现实时颜色识别系统

《使用Python和OpenCV库实现实时颜色识别系统》:本文主要介绍使用Python和OpenCV库实现的实时颜色识别系统,这个系统能够通过摄像头捕捉视频流,并在视频中指定区域内识别主要颜色(红... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间详解

OpenCV实现实时颜色检测的示例

《OpenCV实现实时颜色检测的示例》本文主要介绍了OpenCV实现实时颜色检测的示例,通过HSV色彩空间转换和色调范围判断实现红黄绿蓝颜色检测,包含视频捕捉、区域标记、颜色分析等功能,具有一定的参考... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间

Python实现精准提取 PDF中的文本,表格与图片

《Python实现精准提取PDF中的文本,表格与图片》在实际的系统开发中,处理PDF文件不仅限于读取整页文本,还有提取文档中的表格数据,图片或特定区域的内容,下面我们来看看如何使用Python实... 目录安装 python 库提取 PDF 文本内容:获取整页文本与指定区域内容获取页面上的所有文本内容获取