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实现中文转换url编码的方法
Jun 14 Python
python url 参数修改方法
Dec 26 Python
python字符串循环左移
Mar 08 Python
Python、 Pycharm、Django安装详细教程(图文)
Apr 12 Python
python代码 FTP备份交换机配置脚本实例解析
Aug 01 Python
python破解bilibili滑动验证码登录功能
Sep 11 Python
在Pytorch中计算自己模型的FLOPs方式
Dec 30 Python
python:目标检测模型预测准确度计算方式(基于IoU)
Jan 18 Python
python GUI库图形界面开发之PyQt5线程类QThread详细使用方法
Feb 26 Python
python中urllib.request和requests的使用及区别详解
May 05 Python
python框架flask入门之环境搭建及开启调试
Jun 07 Python
解决python绘图使用subplots出现标题重叠的问题
Apr 30 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
实现获取http内容的php函数分享
2014/02/16 PHP
JS异常处理try..catch语句的作用和实例
2014/05/05 PHP
PHP编写的图片验证码类文件分享
2016/06/06 PHP
PHP中overload与override的区别
2017/02/13 PHP
PHP如何获取当前主机、域名、网址、路径、端口等参数
2017/06/09 PHP
php之header的不同用法总结(实例讲解)
2017/11/28 PHP
php 可变函数使用小结
2018/06/12 PHP
thinkPHP+mysql+ajax实现的仿百度一下即时搜索效果详解
2019/07/15 PHP
javascript中最常用的继承模式 组合继承
2010/08/12 Javascript
jQuery性能优化的38个建议
2014/03/04 Javascript
javascript中call,apply,bind的用法对比分析
2015/02/12 Javascript
js实现防止被iframe的方法
2015/07/03 Javascript
基于NodeJS+MongoDB+AngularJS+Bootstrap开发书店案例分析
2017/01/12 NodeJs
原生js实现鼠标跟随效果
2017/02/28 Javascript
vue2.0中vue-cli实现全选、单选计算总价格的实例代码
2017/07/18 Javascript
js的函数的按值传递参数(实例讲解)
2017/11/16 Javascript
Vue自定义弹窗指令的实现代码
2018/08/13 Javascript
Node.js 获取微信JS-SDK CONFIG的方法示例
2019/05/21 Javascript
js实现表格数据搜索
2020/08/09 Javascript
[01:08:57]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第二场
2014/05/24 DOTA
[54:45]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 Optic vs OG
2018/04/02 DOTA
python fabric实现远程操作和部署示例
2014/03/25 Python
python引用DLL文件的方法
2015/05/11 Python
python生成验证码图片代码分享
2016/01/28 Python
python 时间戳与格式化时间的转化实现代码
2016/03/23 Python
Python 读取位于包中的数据文件
2020/08/07 Python
Sneaker Studio法国:购买运动鞋
2018/06/08 全球购物
大学生学年个人总结
2015/02/15 职场文书
大学生思想道德自我评价
2015/03/09 职场文书
质量承诺书格式范文
2015/04/28 职场文书
实施意见格式范本
2015/06/05 职场文书
汤姆索亚历险记读书笔记
2015/06/29 职场文书
呼兰河传读书笔记
2015/06/30 职场文书
幼儿园班级管理心得体会
2016/01/07 职场文书
如何使用vue3打造一个物料库
2021/05/08 Vue.js
Java存储没有重复元素的数组
2022/04/29 Java/Android