首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

图像处理智能化的探索:文字区块识别

我们观察到这类图片的共同点就是——文字多,我们要做的工作也就是识别图像的文字占地面积。...况且我们的需求只是过滤“文字多的图片”,而不是“识别出文字内容”,使用OCR也就有种杀鸡用牛刀的感觉了。不过在OCR的流程中,也有值得我们提取出来加以利用的环节,那便是图像预处理部分。...利用OpenCV的minAreaRect方法,我们可以得到一块区域的像素点集中包含的最小面积的矩形。其中文字区块包含的矩形通常连成一片,相较其他轮廓更细长。...# 得到最小矩形区域,转换为顶点坐标形式(矩形可能会有角度) rect = cv2.minAreaRect(cnt) box = cv2.cv.BoxPoints(rect)...) # 筛掉面积过小的区块 if area < 1000: continue # 得到最小矩形区域,转换为顶点坐标形式(矩形可能会有角度) rect

4.3K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    cv2.drawContours

    1.1什么是轮廓 轮廓可以简单认为成连续的点(连着边界)连在一起的曲线,具有相同的颜色或者灰度。轮廓在形状分析和物体的检测和识别中很有用。为了准确,要使用二值化图像。...查找轮廓的函数会修改原始图像。如果之后想继续使用原始图像,应该将原始图像储存到其他变量中。在OpenCV中,查找轮廓就像在黑色背景中超白色物体。你应该记住,要找的物体应该是白色而背景应该是黑色。...如何在一个二值图像中查找轮廓。 函数cv2.findContours()有三个参数,第一个是输入图像,第二个是轮廓检索模式,第三个是轮廓近似方法。...k=cv2.isContourConvex(cnt)2.7边界矩形 直边界矩形,一个直矩形,没有旋转。不会考虑对象是否旋转。所以边界矩形的面积不是最小的。...(img,(x,y),(x+w,y+h),(0,255,0),2)旋转的边界矩形,这个边界矩形是面积最小的,因为它考虑了对象的旋转。

    3.3K10

    实战 | OpenCV如何将不同轮廓合并成一个轮廓(附源码)

    导读 本文主要介绍如何用OpenCV将不同的轮廓合并成一个轮廓的实现方法和代码演示。...背景介绍 在图像处理的应用场景中常常会遇到一种情况,本来是一个整体的目标,因为不同的亮度或其他原因导致它分割成多个部分,这种情况在用OpenCV处理的时候会被当成多个轮廓(如下图所示),那么遇到这种情况...,我们如何把不同的轮廓合并成一个轮廓,然后做后续的处理呢?...实现方法与步骤 这里我们不用上面的绘画图,而是使用下面这张图做演示: 我们的目的:将上图中的文字轮廓看成一个整体,然后求其最小外接矩形,获得角度,将文字旋转水平,后续可以做简单的文字识别。...= cv2.drawContours(split_res,[box],0,(0,0,255),2) merge_list.append(cnt) 【4】轮廓合并成一个绘制最小外接矩形 contours_merge

    7.2K31

    opencv 7 -- 边界矩形

    有两类边界矩形 一、直边界矩形—boundingRect() 一个直矩形(就是没有旋转的矩形)。它不会考虑对象是否旋转。 所以边界矩形的面积不是最小的。...可以使用函数 cv2.boundingRect() 查找得到 (x,y)为矩形左上角的坐标,(w,h)是矩形的宽和高 x,y,w,h = cv2.boundingRect(cnt) cv2.boundingRect...()接收的参数一般是轮廓, cnt这个参数,如果自己构造,至少需要四个点 可以使用bumpy 构造一个轮廓, cnt = np.array([[x1,y1],[x2,y2],[x3,y3],[x4...,y4]]) # 必须是array数组的形式 二、旋转的边界矩形 这个边界矩形是面积最小的,因为它考虑了对象的旋转。...x, y, w, h = cv2.boundingRect(contours[i]) # 计算最小外界矩形 min_rect = cv2.minAreaRect

    1.8K20

    对象发现

    对象发现 不知道什么原因博客园在markdown编辑器上无法上传图片。需要看源码和图片复原实验的可以去我的github 近段时间,做了一些关于对象发现的工作。...包含了几乎所有的图片处理方法,例如常见的找边界、膨胀、腐蚀、画矩形、画圆等。本次实践过程我使用到了三种方法,用来识别图像中的液滴。...定义筛选函数 def ContourFilter(contours,min_area,max_area,rate): """ contours 轮廓位置坐标数组 min_area 轮廓围成的区域的最小面积...max_area 轮廓围成的区域的最大面积 轮廓先要满足min_area 和 max_area 条件,然后需要满足包含轮廓的最小矩形的长宽比小于rate """ con = []; for...用常规方法发现对象,在很大程度上依赖cv2.Canny 方法,及以来cv2 库中寻找边界的方法。如果,边界能被精确识别,那么对象发现将会是零误差。因为我们后续操作都是建立在边界轮廓上。

    48220

    基于OpenCV的车辆变道检测

    本期教程我们将和小伙伴们一起研究如何使用计算机视觉和图像处理技术来检测汽车在行驶中时汽车是否在改变车道!...捕获输入后,使用循环提取帧,并使用汽车的haar级联文件检测到的坐标,我们在循环中在汽车周围绘制一个矩形,以在对捕获的帧执行其他操作时获得一致性。...腐蚀算子在内核区域上具有局部最小值的作用。腐蚀用于减少图像中的斑点噪声,斑点会从图像中的对象边界腐蚀掉。膨胀具有局部最大值运算符的作用。...等高线可以是点,边,多边形等,因此在绘制等高线时,我们进行多边形近似,以找到边的长度和区域的面积。...使用Greenline测量角度,并在框架中的汽车上绘制矩形 ? 弹出警报(作者提供的图片) ? 输出 06. 总结 在本教程中,使用车道变更检测方法探索了智能汽车导航的小型演示。

    1.3K10

    基于OpenCV的车辆变道检测

    本期教程我们将和小伙伴们一起研究如何使用计算机视觉和图像处理技术来检测汽车在行驶中时汽车是否在改变车道!...捕获输入后,使用循环提取帧,并使用汽车的haar级联文件检测到的坐标,我们在循环中在汽车周围绘制一个矩形,以在对捕获的帧执行其他操作时获得一致性。...腐蚀算子在内核区域上具有局部最小值的作用。腐蚀用于减少图像中的斑点噪声,斑点会从图像中的对象边界腐蚀掉。膨胀具有局部最大值运算符的作用。...等高线可以是点,边,多边形等,因此在绘制等高线时,我们进行多边形近似,以找到边的长度和区域的面积。...使用Greenline测量角度,并在框架中的汽车上绘制矩形 ? 弹出警报(作者提供的图片) ? 输出 06. 总结 在本教程中,使用车道变更检测方法探索了智能汽车导航的小型演示。

    1.2K10

    OpenCV系列之轮廓特征 | 二十二

    作者:磐怼怼 转载自:深度学习与计算机视觉 未经允许不得二次转载 目标 在本文中,我们将学习 如何找到轮廓的不同特征,例如面积,周长,质心,边界框等。 您将看到大量与轮廓有关的功能。 1....为了理解这一点,假设您试图在图像中找到一个正方形,但是由于图像中的某些问题,您没有得到一个完美的正方形,而是一个“坏形状”(如下图所示)。现在,您可以使用此功能来近似形状。...为了理解它,我们将拍摄上面的矩形图像。首先,我发现它的轮廓为cnt。...旋转矩形 这里,边界矩形是用最小面积绘制的,所以它也考虑了旋转。使用的函数是cv.minAreaRect()。...绿色矩形显示正常的边界矩形。红色矩形是旋转后的矩形。 ? 8. 最小闭合圈 接下来,使用函数cv.minEnclosingCircle()查找对象的圆周。它是一个以最小面积完全覆盖物体的圆。

    90520

    基于Opencv的抠图

    step3:去除图像上的噪声。首先使用低通滤泼器平滑图像(9 x 9内核),这将有助于平滑图像中的高频噪声。低通滤波器的目标是降低图像的变化率。如将每个像素替换为该像素周围像素的均值。...我们把list排序,点最多的那个轮廓就是我们要找的昆虫的轮廓。 OpenCV中通过cv2.drawContours在图像上绘制轮廓。...第一个参数是指明在哪幅图像上绘制轮廓 第二个参数是轮廓本身,在Python中是一个list第三个参数指定绘制轮廓list中的哪条轮廓,如果是-1,则绘制其中的所有轮廓 第四个参数是轮廓线条的颜色第五个参数是轮廓线条的粗细...cv2.minAreaRect()函数: 主要求得包含点集最小面积的矩形,这个矩形是可以有偏转角度的,可以与图像的边界不平行。...box里保存的是绿色矩形区域四个顶点的坐标。我将按下图红色矩形所示裁剪昆虫图像。找出四个顶点的x,y坐标的最大最小值。新图像的高=maxY-minY,宽=maxX-minX。?

    5.6K20

    opencv(4.5.3)-python(十九)--轮廓线的特征

    为了理解它,我们将采取上面的矩形图像。首先,我发现它的轮廓为cnt。现在我用returnPoints = True找到了它的凸面,我得到了以下值。...k = cv.isContourConvex(cnt) 7. 边界矩形 有两种类型的边界矩形。 7.a. 直线边界矩形 这是一个直线矩形,它不考虑物体的旋转。因此,边界矩形的面积不会是最小的。...旋转的矩形 这里,边界矩形是以最小面积绘制的,所以它也考虑了旋转。使用的函数是cv.minAreaRect()。...(img,[box],0,(0,0,255),2) 两个矩形都显示在一张图片上。...绿色矩形显示的是正常的边界矩形。红色矩形是旋转后的矩形。 8. 最小包围圈 接下来,我们使用cv.minEnclosingCircle()函数找到一个物体的圆。它是一个以最小面积完全覆盖物体的圆。

    95820

    应用实例 | 手把手教你用OpenCV实现餐盘水果识别计价程序(附代码)

    导读 本文主要介绍使用Python-OpenCV实现餐盘水果识别与计价的应用。 测试图像与说明 使用图像如下,拍摄环境有待改善(存在光照不均和拍摄角度的影响): ? ? ? ? ? ?...区别颜色使用HSV阈值范围筛选即可,圆形与方形通过轮廓面积与轮廓最小外接圆面积的比值来筛选,圆形rate>=0.9,方形<0.9; (2)水果共三种:苹果、香蕉、橙子,通过颜色可以区分苹果和橙子,通过轮廓最小外接矩形的宽高比可以区分香蕉和橙子...; (3)计价:盘子和水果的数量乘以对应的单价即可; (4)设计UI,计价时显示收款码。...in contours: rect = cv2.minAreaRect(cnt) box = cv2.boxPoints(rect) box = np.int0(box)...,训练和识别时间尽量短,能够及时更新使用。

    2.1K21

    OpenCV 轮廓 —— 轮廓分析

    当分析一张图像的时候,针对轮廓,我们也许有很多事情要做。毕竟,所有轮廓都是或即将是我们想要进行识别或操作的。另外相关的还有多种对轮廓的处理,如描述轮廓,简化或拟合轮廓,匹配轮廓到模板,等等。...然后在原来的轮廓上寻找一个离线段距离最远的点, 将该点加入逼近后的新轮廓中。 算法反复迭代,不断将最远的点添加到结果中,直到所有点到多边形的最短距离小于 parameter 参数指定的精度(图F)。...当然,长度和面积只是轮廓的简单特性。描述轮廓的一种最简易的方法是为它加上一个外包围框。最简单的途径是直接计算外包围矩形。这正是 cv2.boundingRect 函数做的。...该句型为正方向的矩形(不能旋转) 计算点集或灰度图像的非零像素的右上边界矩形。...而函数cv2.minAreaRect可以返回一个包围轮廓最小的矩形,这个矩形很可能是倾斜的。 查找包含输入 2D 点集的最小区域的旋转矩形。

    3.3K20

    OpenCV 轮廓检测

    在计算机视觉中,轮廓检测是另一个比较重要的任务。它包含的操作有计算矩形边界、圆形边界、多边形边界等等。 我们以下面的黑猫图为例来讲解如何利用OpenCV进行轮廓检测。 ?...我们可以看到,原图底部灰色的文字在转二值图的时候被过滤掉了,不参与轮廓检测。...之后,我们可以循环求得图形各部分的矩形轮廓线: for c in contours: #对于每一个轮廓 #无倾斜的 边界矩形框 x, y, w, h = cv2.boundingRect...我们可以循环求得图形各部分的最小矩形轮廓线: W,H = img0.shape[0], img0.shape[1] for c in contours: #对于每一个轮廓 # 可倾斜的最小边界矩形框...我们可以循环求得图形各部分的最小闭圆轮廓线: W,H = img0.shape[0], img0.shape[1] for c in contours: #对于每一个轮廓 #最小边界圆

    1.9K20

    在全志H616核桃派上实现USB摄像头的OpenCV颜色检测

    在给核桃派开发板用OpenCV读取图像并显示到pyqt5的窗口上并加入颜色检测功能,尝试将图像中所有蓝色的东西都用一个框标记出来。...颜色检测核心api 按照惯例,先要介绍一下opencv中常用的hsv像素格式。颜色还是那个颜色,只是描述颜色用的参数变了。h代表色调,s代表饱和度,v代表明度,比使用rgb格式更方便计算与思考。...将hsv值在该范围内的像素点全部变为白色,不在的则为黑色。....RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE) minAreaRect,传入一个轮廓,计算最小外接矩形 # 画最小外接矩形 for cts in contours :...rect = cv2.minAreaRect(cts) drawContours, 绘制轮廓 box = np.int0(cv2.boxPoints(rect)) cv2.drawContours

    19310

    OpenCV中几何形状识别与测量

    OpenCV中几何形状识别与测量 ---- 写有代码的文章、做有情怀的人 ---- 经常看到有学习OpenCV不久的人提问,如何识别一些简单的几何形状与它们的颜色,其实通过OpenCV的轮廓发现与几何分析相关的函数...本文就会演示给大家如何通过OpenCV 轮廓发现与几何分析相关函数实现如下功能: 几何形状识别(识别三角形、四边形/矩形、多边形、圆) 计算几何形状面积与周长、中心位置 提取几何形状的颜色 在具体代码实现与程序演示之前...轮廓(contours) 什么是轮廓,简单说轮廓就是一些列点相连组成形状、它们拥有同样的颜色、轮廓发现在图像的对象分析、对象检测等方面是非常有用的工具,在OpenCV中使用轮廓发现相关函数时候要求输入图像是二值图像...,测量时候还用到另外两个相关API分别是计算轮廓的周长与面积。...具体用法在代码中体现。整个代码实现分为如下几步完成: 1.图像二值化 # 二值化图像 print("start to detect lines...

    7.5K122
    领券