我正在使用Python和Opencv。我现在正在做一个车牌识别项目。我现在可以像这样认出这个盘子:
我得到了这样一个“数组”:
[[[542 796]]
[[965 883]]
[[547 884]]
[[966 795]]]
问题是:如何用这些坐标裁剪出边界区域?
因为这四个对应项是排列的,它不是一个矩形,所以我不知道如何才能裁剪出来。
您可以裁剪内部矩形或外部包围矩形。让四个坐标为:-
(x1,y1),(x2,y2)
(x3,y3),(x4,y4)
假设您对外部边界矩形感兴趣,因此没有字母被分割,您可以使用以下ROI进行简单裁剪。
int topLeftX = min(x1,x3);
int topLeftY = min(y1, y2);
int width = max(x2, x4) - topLeftX;
int height = max(y3, y4) - topLeftY;
cv::Rect outerRoi(topLeftX, topLeftY, width, height);
cv::Mat roiImage = image(outerRoi); //Note that this will not create a deep copy
如果您对从内部适合梯形的最大矩形感兴趣,您应该将最小值与最大值交换,反之亦然。
如果你想要一个梯形的roi,你应该创建一个遮罩图像。有关更多说明,请参见复制非矩形roi opencv
问题内容: 而闭合多边形的坐标是 . 我要区域边界 通过使用opencv裁剪的凹多边形。我找了其他类似的 但我没能找到正确的答案。所以我才这么问? 你能帮助我吗。 任何帮助都将不胜感激。!!! 问题答案: 步骤 使用多边形点查找区域 使用多边形点创建遮罩 做口罩修剪 如果需要,添加白色背景 代码:
本文向大家介绍在Python中使用OpenCV裁剪图像,包括了在Python中使用OpenCV裁剪图像的使用技巧和注意事项,需要的朋友参考一下 什么是裁剪? 裁剪是从摄影或插图图像中去除不需要的外部区域。该过程通常包括去除图像的某些外围区域,以从图片中去除多余的垃圾,改善其取景,改变纵横比,或使主题与背景突出或分离。 我们将使用 OpenCV-python (cv2)的这些函数, imread()
问题内容: 我如何像以前在PIL中一样使用OpenCV裁剪图像。 PIL的工作示例 但是我如何在上做到这一点? 这是我尝试的: 但这是行不通的。 我认为我使用不正确。如果是这种情况,请说明如何正确使用此功能。 问题答案: 非常简单。使用numpy切片。
我需要裁剪图像根据边缘我发现(与给定epsilon) 我有以下说明:Opencv c检测并裁剪图像上的白色区域 有了一个变化-我试图根据我从精明的边缘检测器收到的边缘图像找到矩形: 我遇到的问题是,当我到达第139列时,它会因为以下异常而崩溃: Microsoft C异常:cv::内存位置0x000000EB35DEF170处的异常。 但是,当我使用原始图像(而不是边缘图像)时,它会按预期工作。
我正在尝试学习opencv并通过测试一些用例来实现一个研究项目。我正试图用python opencv裁剪图像内部的边框。我已经成功地创建了边界框,但在裁剪时失败了 这是图像
我不熟悉Python中的图像处理,我正在尝试解决一个常见问题。我有一张有人签名的照片。我想找到边缘并裁剪它以适合图像中的签名。 我尝试了Canny边缘检测和使用现有解决方案列表裁剪图像 我尝试了一些解决方案: > https://www.quora.com/How-can-I-detect-an-object-from-static-image-and-crop-it-from-the-image