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

作者:业余狙击手19 时间:2023-08-02 15:18:47 

原图

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

来源:https://blog.csdn.net/sxlsxl119/article/details/80223729

标签:Python,OpenCV,字母,杂线
0
投稿

猜你喜欢

  • 17个vue常用的数组方法总结与实例演示

    2024-06-07 16:06:07
  • Oracle删除死锁进程的方法

    2024-01-20 13:30:33
  • MySQL中字符串索引对update的影响分析

    2024-01-20 19:00:10
  • MySQL left join操作中on和where放置条件的区别介绍

    2024-01-19 14:10:06
  • Django logging配置及使用详解

    2022-06-01 14:12:48
  • Python统计文件中去重后uuid个数的方法

    2023-07-11 17:20:06
  • Filestream使用简单步骤总结

    2024-01-24 08:08:26
  • 区分有单选框的选项和普通的选项

    2008-04-17 13:44:00
  • debug case: onsubmit=return false依然能提交

    2009-01-18 13:07:00
  • pytest官方文档解读之安装和使用插件的方法

    2022-11-25 23:05:38
  • Python实现高效求解素数代码实例

    2023-04-29 16:06:32
  • Mysql数据库事务的脏读幻读及不可重复读详解

    2024-01-16 04:27:20
  • python使用Pyinstaller如何打包整个项目

    2021-10-27 04:10:58
  • PyCharm-错误-找不到指定文件python.exe的解决方法

    2022-04-20 00:48:10
  • Python实现连接MySql数据库及增删改查操作详解

    2024-01-14 10:40:36
  • vue获取路由详细内容信息方法实例

    2024-06-07 16:01:53
  • vscode 左侧扩展活动栏内容消失的问题及解决方法

    2022-01-12 04:26:35
  • Python利用正则表达式匹配并截取指定子串及去重的方法

    2021-05-07 00:37:20
  • 一些关于SQL2005+ASP.NET2.0的问题

    2007-09-23 13:01:00
  • 零基础学python应该从哪里入手

    2023-04-27 20:44:56
  • asp之家 网络编程 m.aspxhome.com