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

 更新时间:2020年07月05日 12:00:23   作者:业余狙击手19  
这篇文章主要介绍了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)

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

补充知识: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实现VPN搭建的流程步骤

    使用Python实现VPN搭建的流程步骤

    VPN(虚拟私人网络)是一种有效的解决方案,可以帮助我们在网络上匿名浏览,保护数据传输的安全性,虽然市面上有许多商业VPN服务,但你也可以通过Python自己搭建一个简单的VPN,本文将介绍如何用Python建立自己的VPN,需要的朋友可以参考下
    2024-06-06
  • Python实现批量执行同目录下的py文件方法

    Python实现批量执行同目录下的py文件方法

    今天小编就为大家分享一篇Python实现批量执行同目录下的py文件方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • 如何利用Python打开txt格式的文件

    如何利用Python打开txt格式的文件

    在机器学习中,常常需要读取txt文本中的数据,这篇文章主要给大家介绍了关于如何利用Pythont打开txt格式的文件的相关资料,文中通过示例代码介绍的非常详解,需要的朋友可以参考下
    2021-10-10
  • python实现应用程序在右键菜单中添加打开方式功能

    python实现应用程序在右键菜单中添加打开方式功能

    这篇文章主要介绍了python实现应用程序在右键菜单中添加打开方式功能,本文分步骤给大家介绍的非常详细,具有参考借鉴价值,需要的朋友参考下吧
    2017-01-01
  • Python3.5 Pandas模块之Series用法实例分析

    Python3.5 Pandas模块之Series用法实例分析

    这篇文章主要介绍了Python3.5 Pandas模块之Series用法,结合实例形式分析了Python3.5中Pandas模块的Series结构原理、创建、获取、运算等相关操作技巧与注意事项,需要的朋友可以参考下
    2019-04-04
  • Python用61行代码实现图片像素化的示例代码

    Python用61行代码实现图片像素化的示例代码

    这篇文章主要介绍了Python用61行代码实现图片像素化的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-12-12
  • PyQt5 对图片进行缩放的实例

    PyQt5 对图片进行缩放的实例

    今天小编就为大家分享一篇PyQt5 对图片进行缩放的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • python网络编程学习笔记(一)

    python网络编程学习笔记(一)

    这篇文章主要介绍了python网络编程基础知识,需要的朋友可以参考下
    2014-06-06
  • Django执行指定脚本的几种方法

    Django执行指定脚本的几种方法

    这篇文章主要给大家介绍了关于Django执行指定脚本的几种方法,文中通过实例代码介绍的非常详细,对大家学习或者使用Django具有一定的参考学习价值,需要的朋友可以参考下
    2022-02-02
  • Python实现获取内网IP地址的方法总结

    Python实现获取内网IP地址的方法总结

    这篇文章主要为大家详细介绍了五种利用Python语言实现获取内网IP地址的方法,文中的示例代码讲解详细,具有一定的参考价值,需要的可以了解一下
    2023-03-03

最新评论