我正在使用Python和Opencv。我现在正在进行牌照识别项目。我现在可以认出这样的盘子了:
我得到了一个"阵列"像这样:
<ion-slide-box on-slide-changed="vm.slideHasChanged($index)">
<ion-slide>
<div class="slide-box">
// Content that is less than 100vh
</div>
</ion-slide>
<ion-slide>
// Content that is more than 100vh
</ion-slide>
</ion-slide-box>
问题是:如何使用这些坐标裁剪出绑定区域?
由于四个corrdinates被置换并且它不是一个矩形,所以我不知道如何裁掉它。
答案 0 :(得分:0)
您可以裁剪内部矩形或外部边界矩形。让四个坐标为: -
(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
如果对从内部适合梯形的最大矩形感兴趣,你应该用最大值交换min,反之亦然。
如果你想要一个像roi这样的梯形,你应该创建一个蒙版图像。如需进一步说明,请参阅copying non-rectangular roi opencv