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)
结果图,还有一些点需要进一步处理
补充知识: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
0
投稿
猜你喜欢
- 在 MySQL 中,数据库和表对应于那些目录下的目录和文件。因而,操作系统的敏感性决定数据库和表命名的大小写敏感。这就意味着数据库和表名在
- IE6绝对定位的bug及其解决办法。position:absolute定位在IE6下存在left和bottom的定位错误问题:<!–I
- 随着技术的不断升级,微软的王牌数据库SQL Server 2000正在逐渐淡出人们的视线,而新版的SQL Server 2005正成为企业和
- 我们先看一下JavaScript中关系运算符的类型转换规则:关系运算符(<、>、<=、>=) 试图将 express
- asp十进制转二进制;二进制转十进制;二进制转十六进制;十六进制转二进制;八进制转二进制'二进制转八进制;八进制转十进制;十六进制转
- SQL中的单记录函数 1.ASCII 返回与指定的字符对应的十进制数; SQL> select ascii('A')
- 您是否记得关闭所有的XHTML元素,在HTML中一些元素没有必要被关闭。当下一个元素开始的时候,上一个元素就自动被关闭。XHTML中是不允许
- 本文描述通过统计分析出医院信息系统需分区的表,对需分区的表选择分区键,即找出包括在你的分区键中的列(表的属性),对大型数据的管理比较有意义,
- 代码如下:<title>雷锋|优酷-专辑 采集程序</title></head> &
- 分享一个 * 真网页拾色器(调色板),颜色丰富216色,使用方便。运行截图:<html id="container"
- 网站内容的入口很大一部分都是依赖于导航系统,而网站的入口很大一部分依赖于搜索系统,这也在一定意义上证明了导航与搜索之间的重叠性。搜索系统可以
- sql不常用函数总结以及事务,增加,删除触发器 distinct 删除重复行 declare @x 申明一个变量 convert(varch
- 用ASP判断一个字符串中只包含字母和数字要怎么做啊? for s=1 to len(trim(use
- 首先你要明白24bit的bmp图片的基本信息:1像素占3个字节,头部占54个字节。好了,现在开始做验证码了,这里以4位验证码(大小为20(高
- 以下示例显示如何在 XPath 查询中指定轴。这些示例中的 XPath 查询都在 SampleSchema1.xml 中所包含的映射架构上指
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&
- 最好也是最简单的办法就是利用Cookie,而不必用到数据库。当然,你愿意用数据库也可以。下面就是利用Cookie来实现的:< 
- 让你的读者能够方便地收藏你的文章到社会化书签(网摘)网站,如 新浪,google,yahoo,Del.icio.us, 365key等添加到
- 在许多用SQL Server实现的新的企业系统设计中,系统设计师需要在给数据结构和管理应用程序逻辑的定位上做出具有关键性意义的决定。SQL
- 继团队的CSS3.0中文手册在国内首发以后,最近风风火火的到处吹起HTML5.0和CSS3.0的春风;似乎在这浏览器互相调侃的年代,成就了一