Java 有什么能根据四个坐标点截取图片一部分的方法

2020-03-27 15:39:12 +08:00
 cccy0

我看基本全都是根据 起始点的 xy 坐标 和矩形的长宽来截取的, 有没有 通过四个坐标点 如 (x1,y1)(x2,y2)(x3,y3)(x4,y4) 来截取矩形的方法?

1971 次点击
所在节点    问与答
25 条回复
cccy0
2020-03-27 16:05:59 +08:00
他返回的这个点, 是矩阵旋转之前的点
jmc891205
2020-03-27 16:12:30 +08:00
就截一个水平的外接矩形出来呗
多截的那些地方会影响到你?

斜着的直线会经过很多不完整的像素 处理起来很麻烦
woodensail
2020-03-27 16:18:58 +08:00
@cccy0 四个点,坐标分别是,[0,0] [10,0] [0,10] [1,1]
你来围一个凸多边形看看。
Mithril
2020-03-27 16:19:54 +08:00
这个倒是很简单。
因为原图肯定是矩形的,那么你就根据合适的分辨率新建一个矩形的图。
然后通过他给你的四个顶点位置,计算出来从新图坐标到你识别图坐标的变换矩阵。
然后遍历新图的每个像素,根据矩阵算出来原始图的像素坐标位置,插一下值。
这样一步操作可以连正畸加抠图全做了。

实际上核心就是算个透视变换的矩阵。
实在不会你可以 OpenCV 扣个代码改成 Java 的。
jifengg
2020-04-04 21:37:20 +08:00
我觉得楼主可以搜索”多边形截取”,应该能得到你要的结果

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/656814

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX