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

OpenCV 4基础篇| OpenCV图像的裁切

Numpy切片 语法结构: retval = img[y:y+h, x:x+w] #对图像 img 裁剪并返回指定的矩阵区域图像。...img:图像数据,nparray 多维数组 x, y:整数,像素值,裁剪矩形区域左上角的坐标值 w, h:整数,像素值,裁剪矩形区域的宽度、高度 retval:裁剪后获得的 OpenCV 图像,nparray...Numpy 数组切片,当上界或下界为数组边界时可以省略,如:img[y:, :x] 表示高度方向 y 至图像底部(像素ymax),宽度方向图像左侧(像素 0)至 x。...(ROI) windowName:选择的区域被显示在的窗口的名字 img:要在什么图片上选择ROI showCrosshair:是否在矩形框里画十字线. fromCenter:是否是矩形框的中心开始画...up:整数,表示裁剪区域左上角的 y 坐标。 right:整数,表示裁剪区域右下角的 x 坐标。这个值通常大于 left。 below:整数,表示裁剪区域右下角的 y 坐标。

7000

【深度学习】实例第二部分:OpenCV

import numpy as np import cv2 # 图像随机裁剪 def random_crop(im, w, h): start_x = np.random.randint(...其形式为:[Next,Previous,First_Child,Parent],分别表示后一个轮廓的索引编号、前一个轮廓的索引编号、第1个子轮廓的索引编号、父轮廓的索引编号 参数 image:原始图像...都是黑色背景中查找白色对象。...返回值: retval:表示返回的矩形边界的左上角顶点的坐标值及矩形边界的宽度和高度 x, y, w, h: 矩形边界左上角顶点的x坐标、y坐标、宽度、高度 """ 代码: # 绘制图像矩形轮廓...样本图像中,粉红色区域为镀盘区域,镀盘内部空洞为瑕疵区域,利用图像技术检测镀盘是否存在瑕疵,如果存在则将瑕疵区域标记出来。

1.7K10
您找到你想要的搜索结果了吗?
是的
没有找到

遮挡重叠场景下|基于卷积神经网络与RoI方式的机器人抓取检测

摘要 抓取物体堆叠和重叠场景中的特定目标是实现机器人抓取的必要和具有挑战性的任务。在本文中,我们提出了一种基于感兴趣区域(RoI)的机器人抓取检测算法,以同时检测目标及其在物体重叠场景中的抓取。...我们提出的算法使用感兴趣区域(RoIs)来检测目标的分类和位置回归。...因此,本文提出了一种基于感兴趣区域(RoI)的机器人抓取检测新方法,解决了物体重叠场景中抓取检测和物体抓握匹配的问题,同时检测物体和抓取位置。RoIs是对象边界框的候选。...区域提议网络(RPN)实际上是3×3卷积层,它为RCNN和抓取检测器提供称为感兴趣区域(RoI)的对象边界框提议。...为了获得用于抓取检测的RoI的训练真值标定,我们首先通过重叠区域将每个RoI与一个真值对象的边界框匹配如下: •使用大于0.5的Intersection over Union(IoU)作为匹配候选,保留真值对象边界框

1.9K10

RCNN- 将CNN引入目标检测的开山之作

它定义了两个bounding box的重叠度,如下图所示 ? ? 就是矩形框A、B的重叠面积占A、B并集的面积比例。...(1)最大概率矩形框F开始,分别判断A~E与F的重叠度IOU是否大于某个设定的阈值; (2)假设B、D与F的重叠度超过阈值,那么就扔掉B、D;并标记第一个矩形框F,是我们保留下来的。...(3)剩下的矩形框A、C、E中,选择概率最大的E,然后判断E与A、C的重叠度,重叠大于一定的阈值,那么就扔掉;并标记E是我们保留下来的第二个矩形框。 就这样一直重复,找到所有被保留下来的矩形框。...如果用selective search挑选出来的候选框与物体的人工标注矩形框(PASCAL VOC的图片都有人工标注)的重叠区域IoU大于0.5,那么我们就把这个候选框标注成物体类别(正样本),否则我们就把它当做背景类别...训练样本:判定为本类的候选框中和真值重叠面积大于0.6的候选框。 ?

59520

EAST算法超详细源码解析:数据预处理与标签生成

crop_img(ii) 接下来就是搜索裁剪方案,搜索的方法是:在图像放大后的尺寸比512x512多出来的空间内进行随机搜索起始点坐标;一个符合要求的裁剪方案是:裁剪得到的图像不能“分割”了图像中的任一文本框...02 is_cross_text:判断裁剪有无“割裂”图像中的任意文本框 is_cross_text(i) 生成裁剪图像的多边形区域以及文本框的多边形区域,计算两者的重叠区域面积。...is_cross_text(ii) 计算重叠区域面积占文本框面积的比例,理想情况下是1,因为我们要求文本框完全处于裁剪图像的内部。...注意,只要图像中有任意一个文本框不完全处于裁剪后的图像内部,则该裁剪方案不符合要求!...接下来对旋转后图像每点(包括在文本框外的)都计算d,d若大于文本框边长也代表在文本框外,但是由于我们有mask,因此这部分也会被置0。

1.9K30

MSER+NMS检测图像中文本区域

OCR相关工作都有一个第一步,那就是检测图像中的文本区域,只有找到了文本区域,才能对其内容进行识别,也只有找到了文本区域,才能更有针对性地判断该文本图像的质量好坏,我们期望达到如下的文本区域检测效果:...形象一点解释这个原理就是:MSER对一幅已经处理成灰度的图像做二值化处理,这个处理的阈值0到255递增,这个阈值的递增类似于在一片土地上做水平面的上升,随着水平面上升,高高低低凹凸不平的土地区域就会不断被淹没...但是上面效果中的文本框形状太多变了,我们检测文本区域一般都会设法得到一个包含文本的矩形框,以便于后续图像中通过坐标获取该区域,那怎么把这些区域转换成矩形框呢?...NMS的基本思想是遍历将所有的框得分排序,选中其中得分最高的框,然后遍历其余框找到和当前最高分的框的重叠面积(IOU)大于一定阈值的框,删除。...在这个例子中,就是设定一个IOU阈值(比如0.5,也就是如果两个框的重叠面积大于其中一个框的50%,那么就删除那个框),然后遍历所有框,对剩下的每个框,遍历判断其余框中与他重叠面积大于阈值的,则删除。

68810

OpenCV新手入门,如何用它平移缩放和旋转图片

它不仅能用来实现各种复杂的算法,还能够对图像进行预处理:包括图像的平移、旋转、缩放、翻转、裁剪。 最近一位来自印度的小哥Raoof Naushad发布了一篇相关教程,希望把这些知识分享给初学者。...创建一个平移矩阵,这一步需要借助NumPy进行。 Step3....根据缩小或放大图像的需要,参数指定插值方法可以选择cv.INTER_AREA(区域插值)、cv.INTER_CUBIC(三次样条插值)、cv.INTER_LINEAR(线性插值)。...图像裁剪 运用Cropped = image[a1:a2,b1:b2] 裁剪图像img得到一个矩形,高度a1到a2,宽度b1到b2。...Raoof Naushad不仅发布了这篇教程,还分享了用于基本和高级图像处理的OpenCV速查表,感兴趣的朋友可以通过下方链接查看。

1.8K30

就是这么霸道,使用OpenCV10行代码实现人脸检测

下面描述的整个过程的图[输入、人脸检测过程&输出] 输入: 该算法需要两个输入: 输入图像矩阵(我们将读取图像并将其转换为数字矩阵/numpy 数组) 面部特征(在haarcascade_frontalface_default.xml...代码和解释: 让我们 python 代码开始。...现在,如果后续的迭代也将相同的区域标记为正,则该矩形区域成为真正的可能性就会增加。如果某个区域在一次迭代中被识别为人脸,但在任何其他迭代中都没有,则将它们标记为误报。...对于minNeighbors = 0,所有的矩形都被检测为人脸。对于某些矩形,有很多重叠矩形,这表明在多次迭代中这些矩形已被检测为正。我们设置阈值以提高算法的准确性。...minNeighbors = 0 当 minNeighbors = 2 时,大部分重叠矩形不再存在。但是,我们仍然有一些误报。

96520

使用Python,OpenCV获取、更改像素,修改图像通道,剪裁ROI

这篇博客将介绍使用Python,OpenCV获取、更改像素,修改图像通道,截取图像感兴趣ROI;单通道图,BGR三通道图,四通道透明图,不透明图; 1....效果图 原图 VS 更改右下某个像素为红色,更改左上角1/4区域为绿色,效果图如下: 裁剪感兴趣区域:分别截取左上角、右上角、左下角、右下角,各占1/4;效果图如下: 原图 VS 图像单通道灰度图效果如下...= image.copy() (h, w) = image.shape[:2] cv2.imshow("Original", image) # 图像Numpy数组存在,获取左上角,图像索引0开始...}, Blue: {}".format(r, g, b)) # 获取x=380,y=380的像素值,图像想象为M*N的矩阵,M为行,N为列 (b, g, r) = image[380, 380] print..., h // 2) # 使用数组切片获取左上角1/4的部分 tl = image[0:cY, 0:cX] cv2.imshow("Top-Left Corner", tl) # 同样的,用数组切片裁剪

1.1K00

OpenCV零基础---检测及分割图像的目标区域

老师:图像处理。 ~.我:喔,你说说看,我确实做了不少图像处理的东西(心里默念,你不知知道你给过我多少图像吗?) 老师:好嘞!在用深度学习的时候,比如说面对一张图像,对某个区域感兴趣怎么办?...通过这个操作,会留下具有高水平梯度和低垂直梯度的图像区域。 此时,我们会得到 ? 4.我们继续去噪声 考虑到图像的孔隙 首先使用低通滤泼器平滑图像, 这将有助于平滑图像中的高频噪声。...我将按下图红色矩形所示裁剪昆虫图像。 找出四个顶点的x,y坐标的最大最小值。新图像的高=max(Y)-min(Y),宽=max(X)-min(X) ? 终于我们得到了可爱的小虫子。...drawContours(src, cnts, whichToDraw(-1), color, line) img = cv2.imwrite(filename, dst, # 文件路径,和目标图像文件矩阵...[int(cv2.IMWRITE_JPEG_QUALITY), 5] [int(cv2.IMWRITE_JPEG_QUALITY), 95] # 0到9,压缩级别越高,图像尺寸越小。

12.7K100

Android 图形处理 —— Matirx 方法详解及应用场景

(包括裁剪、灰度化等)-> 扫码 SDK 分析预处理后的帧图像 -> 识别到二维码,返回二维码信息(包括在图中的位置等) -> 将当前图像原始帧设置为背景图 -> 在图上二维码位置出绘制小黄点 由于...SDK 分析的是裁剪灰度化过后的图像,因此返回的二维码位置信息也是基于裁剪过后的坐标系,如果我们直接把这个坐标绘制在屏幕上,必然会发现二维码位置不对 因此这里就涉及到坐标映射: 我们需要把裁剪后的坐标映射回手机屏幕坐标...先看看我们当前有哪些数据: 裁剪后的图像 二维码位置信息,是一组顶点(上下左右四个位置的点 x,y ) 取景框尺寸 我们可以分析出,这里发生了变化的是两个矩形:取景框和裁剪后的图像 根据之前学到的内容...= Matrix() // cropRect 是裁剪后的图像矩形 val source = floatArrayOf( cropRect.left.toFloat(), cropRect.top.toFloat...Matrix // 这里默认裁剪后的图像没有旋转,否则还需要处理旋转 matrix.setPolyToPoly(source, 0, destination, 0, 4) 复制代码 得到 Matrix

1.4K10

SiamRPN:孪生网络与RPN的结合

关键是候选的孪生候选区域生成网络(Siamese-RPN)。它由模板分支和检测分支组成,它们以端到端的方式对大规模图像对进行离线训练。...到此为止,网络只需要把这些可能含有物体的区域选取出来就可以了,这些被选取出来的区域又叫做ROI(Region of Interests),即感兴趣区域。...当然RPN同时也会在feature map上框定这些ROI感兴趣区域的大致位置,即输出Bounding Box。...为了解决重叠proposal问题,采用NMS算法处理:两个proposal间IoU大于预设阈值,则丢弃score较低的proposal。...共执行了50个epoch,log space的学习率10-2降低到10-6。我们VID和Youtube-BB中提取图像对,通过选择间隔小于100的帧并执行进一步的裁剪程序。

1.8K73

EmguCV 常用函数功能说明「建议收藏」

圆形被ROI矩形裁剪 对比度有限自适应直方图均衡(CLAHE)。 ClipLine,计算完整在矩形中的线段的一部分。...也就是说,除了镜头失真的校正之外,该功能还可以应用任意透视变换R,并且最终可以根据新的相机矩阵图像进行缩放和移位。 插入,区域边界附近的像素重建所选图像区域。...线,绘制图像中pt1和pt2点之间的线段。该行被图像或ROI矩形裁剪。对于具有整数坐标的非抗锯齿线,使用8连接或4连接的Bresenham算法。粗线用圆形末端绘制。使用高斯滤波绘制抗锯齿线。...PSNR,计算PSNR图像/视频质量度量。 PutText,使用指定的字体和颜色呈现图像中的文本。打印的文字被ROI矩形裁剪。不属于指定字体的符号将被替换为矩形符号。...在将图像传递给函数之前,用户必须大致概述图像标记中所需的区域,其中正(> 0)索引,即每个区域被表示为具有像素值1,2,3等的一个或多个连接分量。这些分量将是未来图像区域的“种子”。

3.3K20

图像篇】OpenCV图像处理(四)---图像切割&ROI选取

1.2 代码实践 #coding:utf-8 import numpy as np import cv2 # 指定图像文件路径(此处使用相对地址) img_path = './04.jpg' # 读取图像...由此,我们可以截取0,0,出发, 高度为:image_height//2, 宽度为:image_width//2的图像。 为了方便,小编把图像四个部分的代码也写在里面了哦。...cv2.imshow("image", img) # 是否显示网格 showCrosshair = False # 如果为Ture的话 , 则鼠标的起始位置就作为了roi的中心 # False: 左上角到右下角选中区域...fromCenter = False # 选择 ROI(感兴趣的部分)图像 rect = cv2.selectROI("image", img, showCrosshair, fromCenter)...False: 第一次选中的点为矩形的左上角. 返回的是一个tuple值, 代表矩形区域.

66910

object detection中的非极大值抑制(NMS)算法

集合中移除并加入到最终的检测结果D中.通常将B中剩余检测框中与M的IoU大于阈值Nt的框B中移除.重复这个过程,直到B为空....重叠率(重叠区域面积比例IOU)阈值 常用的阈值是 0.3 ~ 0.5....(1)最大概率矩形框F开始,分别判断A~E与F的重叠度IOU是否大于某个设定的阈值; (2)假设B、D与F的重叠度超过阈值,那么就扔掉B、D;并标记第一个矩形框F,是我们保留下来的。...(3)剩下的矩形框A、C、E中,选择概率最大的E,然后判断E与A、C的重叠度,重叠大于一定的阈值,那么就扔掉;并标记E是我们保留下来的第二个矩形框。 就这样一直重复,找到所有被保留下来的矩形框。...IOU:重叠面积/(面积1+面积2-重叠面积) ovr = inter / (areas[i] + areas[order[1:]] - inter) #找到重叠度不高于阈值的矩形索引

4.1K50

基于OpenCV 的车牌识别

车牌识别的相关步骤 1.车牌检测:第一步是汽车上检测车牌所在位置。我们将使用OpenCV中矩形的轮廓检测来寻找车牌。如果我们知道车牌的确切尺寸,颜色和大致位置,则可以提高准确性。...仅显示强度梯度大于最小阈值且小于最大阈值的边缘。结果图像如下所示 ?...为了过滤获得的结果中的车牌图像,我们将遍历所有结果,并检查其具有四个侧面和闭合图形的矩形轮廓。由于车牌肯定是四边形的矩形。...2.字符分割 车牌识别的下一步是通过裁剪车牌并将其保存为新图像,将车牌图像中分割出来。然后,我们可以使用此图像来检测其中的字符。...下面显示了图像裁剪出ROI(感兴趣区域图像的代码 # Now crop (x, y) = np.where(mask == 255) (topx, topy) = (np.min(x), np.min

7.3K41

Python3 OpenCV4 计算机视觉学习手册:6~11

为什么图像的特定区域可以分类为特征,而其他区域则不能分类为特征? 广义上讲,特征是图像中唯一或易于识别的兴趣区域。...如果两个矩形重叠比例大于此比例,则得分较低的矩形将被滤除。 最终,该函数将返回剩余矩形的数组。...我们将采用幼稚的方法,该方法只是选择第一个视频帧的中心部分作为我们感兴趣的初始区域。 (用户必须确保感兴趣的对象最初位于视频的中心。)我们将计算该感兴趣的初始区域的直方图。...为了避免超出范围的问题,我们对矩形进行裁剪,使其完全位于图像内。 在这些边缘情况下,这可能会给我们留下非正方形的矩形,但这是可以接受的折衷方案。...我们宁愿使用感兴趣的非正方形区域,而不是仅仅因为它位于图像的边缘而完全抛弃检测到的数字。

3.8K20
领券