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 相关文章推荐
Python3基础之函数用法
Aug 13 Python
python3 模拟登录v2ex实例讲解
Jul 13 Python
将字典转换为DataFrame并进行频次统计的方法
Apr 08 Python
通过python顺序修改文件名字的方法
Jul 11 Python
详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决
Apr 17 Python
对python特殊函数 __call__()的使用详解
Jul 02 Python
浅谈python图片处理Image和skimage的区别
Aug 04 Python
python3实现微型的web服务器
Sep 03 Python
Django 实现xadmin后台菜单改为中文
Nov 15 Python
基于Python 函数和方法的区别说明
Mar 24 Python
python+selenium小米商城红米K40手机自动抢购的示例代码
Mar 24 Python
单身狗福利?Python爬取某婚恋网征婚数据
Jun 03 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
Linux中用PHP判断程序运行状态的2个方法
2014/05/04 PHP
解决微信授权回调页面域名只能设置一个的问题
2016/12/11 PHP
PHP7匿名类的用法示例
2019/04/05 PHP
js 禁用浏览器的后退功能的简单方法
2008/12/10 Javascript
Javascript结合css实现网页换肤功能
2009/11/02 Javascript
jQuery插件开发全解析
2012/10/10 Javascript
当jQuery1.7遇上focus方法的问题
2014/01/26 Javascript
简述Jquery与DOM对象
2015/07/10 Javascript
浅谈javascript中return语句
2015/07/15 Javascript
AngularJS入门教程之ng-class 指令用法
2016/08/01 Javascript
轻松实现jquery选项卡切换效果
2016/10/10 Javascript
jquery操作checkbox火狐下第二次无法勾选的解决方法
2016/10/10 Javascript
Ajax+FormData+javascript实现无刷新表单信息提交
2016/10/24 Javascript
javascript基础知识讲解
2017/01/11 Javascript
React-Native左右联动List的示例代码
2017/09/21 Javascript
微信小程序实现image组件图片自适应宽度比例显示的方法
2018/01/16 Javascript
Vue底层实现原理总结
2018/02/17 Javascript
webpack打包nodejs项目的方法
2018/09/26 NodeJs
nodejs中request库使用HTTPS代理的方法
2019/04/30 NodeJs
微信小程序系列之自定义顶部导航功能
2019/05/21 Javascript
Angular封装表单控件及思想总结
2019/12/11 Javascript
vue+vant实现商品列表批量倒计时功能
2020/01/13 Javascript
JS面向对象编程基础篇(一) 对象和构造函数实例详解
2020/03/03 Javascript
wxPython使用系统剪切板的方法
2015/06/16 Python
深入理解python中的浅拷贝和深拷贝
2016/05/30 Python
python中urlparse模块介绍与使用示例
2017/11/19 Python
使用pygame模块编写贪吃蛇的实例讲解
2018/02/05 Python
Django开发中的日志输出的方法
2018/07/02 Python
docker django无法访问redis容器的解决方法
2019/08/21 Python
如何使用Python多线程测试并发漏洞
2019/12/18 Python
Django-xadmin后台导入json数据及后台显示信息图标和主题更改方式
2020/03/11 Python
Python常用断言函数实例汇总
2020/11/30 Python
给下属加薪申请报告
2015/05/15 职场文书
2015年学校信息技术工作总结
2015/05/25 职场文书
证婚人致辞精选
2015/07/28 职场文书
Redis之RedisTemplate配置方式(序列和反序列化)
2022/03/13 Redis