python星号画平行四边形_Opencv在python中裁剪出平行四边形图像

1586010002-jmsa.png

I am using Python and Opencv. I am now doing a license-plate recognition project. I can now recognize the plate like this:

Rpr63.jpg

And I got an "array" like this :

[[[542 796]]

[[965 883]]

[[547 884]]

[[966 795]]]

The problem is: How can I crop out the bound region with these coordinates?

As the four corrdinates are permuted and it is not a rectangle, so I dont know how I can crop this out.

解决方案

You can crop the inner rectangle or outer bounding rectangle. Let the four co-ordinates be:-

(x1,y1), (x2,y2)

(x3,y3), (x4,y4)

Assuming, you are interested in outer bounding rectangle, so that no letter is segmented, you can do simple cropping using below 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

If interested in largest rectangle which fits the trapezium from inside, you should swap min with max and vice-versa.

If you want a trapezium like roi, you should create a mask image. For further directions,, see copying non-rectangular roi opencv

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值