Python OpenCV去除字母后面的杂线操作


Posted in Python onJuly 05, 2020

原图

Python OpenCV去除字母后面的杂线操作

代码

src = cv2.imread("28.png")
  gray_src = cv2.cvtColor(src, cv2.COLOR_BGR2GRAY)
  #cv2.imshow("input image", src)
  #cv2.imshow("gray image", gray_src)
  #cv2.waitKey(0)
  gray_src = cv2.bitwise_not(gray_src)
  #二值化
  binary_src = cv2.adaptiveThreshold(gray_src, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 15, -2)
  cv2.namedWindow("result image", cv2.WINDOW_AUTOSIZE)
  cv2.imshow("result image", binary_src)
  #cv2.waitKey(0)
  # 提取水平线  src.shape[1]得到src列数
  #hline = cv2.getStructuringElement(cv2.MORPH_RECT, (1, 1), (-1, -1))
  hline = cv2.getStructuringElement(cv2.MORPH_RECT, (1, 4), (-1, -1)) #定义结构元素,卷积核
  # 提取垂直线  src.shape[0]得到src行数
  vline = cv2.getStructuringElement(cv2.MORPH_RECT, (4, 1), (-1, -1))
  #vline = cv2.getStructuringElement(cv2.MORPH_RECT, (3, 3))
  # 这两步就是形态学的开操作——先腐蚀再膨胀
  #temp = cv2.erode(binary_src, hline)   #腐蚀
  #dst = cv2.dilate(temp, hline)      #膨胀
  # 开运算
  dst = cv2.morphologyEx(binary_src, cv2.MORPH_OPEN, hline)  #水平方向
  dst = cv2.morphologyEx(dst, cv2.MORPH_OPEN, vline)  #垂直方向
  #将二指图片的效果反转既黑色变白色,白色变黑色。 非操作
  dst = cv2.bitwise_not(dst)
  cv2.imshow("Final image", dst)
  cv2.waitKey(0)

结果图,还有一些点需要进一步处理

Python OpenCV去除字母后面的杂线操作

补充知识:Opencv 提取水平 垂直线,去除杂线,提取对象

Python OpenCV去除字母后面的杂线操作

我就废话不多说了,大家还是直接看代码吧~

#include<opencv2\opencv.hpp>
#include<iostream>
 
using namespace std;
using namespace cv;
 
int main(int argc, char* argv[])
{
	Mat src = imread("截图3.jpg");
	if (src.empty())
	{
		return -1;
	}
	String strInput = "input image";
	namedWindow(strInput, CV_WINDOW_AUTOSIZE);
	imshow(strInput, src);
	Mat dst;
	cvtColor(src, dst, CV_BGR2GRAY);//转灰度
	imshow("output grap image", dst);
	Mat binimg;
	adaptiveThreshold(~dst, binimg, 255, ADAPTIVE_THRESH_MEAN_C, ADAPTIVE_THRESH_MEAN_C, 15, -2);//转二值
	imshow("binary image", binimg);
	Mat hLine = getStructuringElement(MORPH_RECT, Size(src.cols/16, 1), Point(-1, -1));//水平结构
	Mat vLine = getStructuringElement(MORPH_RECT, Size(1, src.rows / 16), Point(-1, -1));//垂直结构
 
	Mat kernel = getStructuringElement(MORPH_RECT, Size(3, 3), Point(-1, -1));//去除杂线 提取对象
	Mat tmp;
	//erode(binimg, tmp, vLine);
	//dilate(tmp, dst, vLine);
	morphologyEx(binimg, dst, CV_MOP_OPEN,hLine);
	bitwise_not(dst, dst);//取反
	blur(dst, dst, Size(3, 3), Point(-1, -1));
	imshow("Final image", dst);
 
	waitKey(0);
	return 0;
}

以上这篇Python OpenCV去除字母后面的杂线操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用python实现递归版汉诺塔示例(汉诺塔递归算法)
Apr 08 Python
python中安装Scrapy模块依赖包汇总
Jul 02 Python
详解Python函数可变参数定义及其参数传递方式
Aug 02 Python
python 自定义异常和异常捕捉的方法
Oct 18 Python
使用Python 正则匹配两个特定字符之间的字符方法
Dec 24 Python
set在python里的含义和用法
Jun 24 Python
python 上下文管理器及自定义原理解析
Nov 19 Python
python之pymysql模块简单应用示例代码
Dec 16 Python
Python输出指定字符串的方法
Feb 06 Python
Python如何获取文件路径/目录
Sep 22 Python
python中turtle库的简单使用教程
Nov 11 Python
MoviePy常用剪辑类及Python视频剪辑自动化
Dec 18 Python
使用OpenCV去除面积较小的连通域
Jul 05 #Python
学python最电脑配置有要求么
Jul 05 #Python
浅谈OpenCV中的新函数connectedComponentsWithStats用法
Jul 05 #Python
python怎么对数字进行过滤
Jul 05 #Python
python主要用于哪些方向
Jul 05 #Python
python右对齐的实例方法
Jul 05 #Python
使用Python-OpenCV消除图像中孤立的小区域操作
Jul 05 #Python
You might like
PHP分页显示制作详细讲解
2006/10/09 PHP
利用Ffmpeg获得flv视频缩略图和视频时间的代码
2011/09/15 PHP
Array of country list in PHP with Zend Framework
2011/10/17 PHP
使用PHPCMS搭建wap手机网站
2015/09/20 PHP
通过PHP简单实例介绍文件上传
2015/12/16 PHP
CI框架实现优化文件上传及多文件上传的方法
2017/01/04 PHP
php实现的中秋博饼游戏之绘制骰子图案功能示例
2017/11/06 PHP
thinkPHP5框架闭包函数与子查询传参用法示例
2018/08/02 PHP
List the Codec Files on a Computer
2007/06/18 Javascript
javascript 传统事件模型构造的事件监听器实现代码
2010/05/31 Javascript
jquery Moblie入门—hello world的示例代码学习
2013/01/08 Javascript
SeaJS入门教程系列之完整示例(三)
2014/03/03 Javascript
JS打开新窗口防止被浏览器阻止的方法
2015/01/03 Javascript
JavaScript学习笔记之JS事件对象
2015/01/22 Javascript
浅谈JavaScript中的Math.atan()方法的使用
2015/06/14 Javascript
基于JavaScript实现弹出框效果
2016/02/19 Javascript
Bootstrap如何创建表单
2016/10/21 Javascript
jQuery插件之validation插件
2017/03/29 jQuery
es6学习笔记之Async函数的使用示例
2017/05/11 Javascript
Angular如何在应用初始化时运行代码详解
2018/06/11 Javascript
详解JavaScript函数callee、call、apply的区别
2019/03/08 Javascript
Python中的random()方法的使用介绍
2015/05/15 Python
python查看微信好友是否删除自己
2016/12/19 Python
python使用Flask操作mysql实现登录功能
2018/05/14 Python
在Mac上删除自己安装的Python方法
2018/10/29 Python
在python中使用requests 模拟浏览器发送请求数据的方法
2018/12/26 Python
PyQt5 多窗口连接实例
2019/06/19 Python
pandas如何处理缺失值
2019/07/31 Python
基于TensorFlow中自定义梯度的2种方式
2020/02/04 Python
Python使用sys.exc_info()方法获取异常信息
2020/07/23 Python
python利用platform模块获取系统信息
2020/10/09 Python
css3通过scale()、rotate()实现放大、旋转
2020/03/19 HTML / CSS
加拿大拼图大师:Puzzle Master
2020/12/28 全球购物
教师自荐信
2013/12/10 职场文书
公司老总年会致辞
2015/07/30 职场文书
Jupyter notebook 输出部分显示不全的解决方案
2021/04/24 Python