我正在学习JavaCV,并希望根据颜色动态提取部分图像。
作为识别,我概述了我需要用颜色提取的区域。无论如何,我可以做提取ROI基于颜色轮廓。谢谢你的帮助。
这是样本图像
这很简单。因为你的图形有四个角,所以你应该按照下面的步骤。
1。识别图像的方向,并以特定顺序将点存储在MatofPoint2f中。(顺时针或逆时针方向)-为此,您可以使用Math.atan2(p1(y)-centerpoint(y),p1(x)-centerpoint(x)),然后根据方程的结果对点进行排序。通过查找所有x坐标和y坐标的平均值(或您喜欢的任何方法)找到中心点。
2。创建一个MatofPoint2f,其中包含您希望裁剪图像的结果图像大小的角坐标。
3。使用Imgproc.getPerspectiveTransform()来执行裁剪。
4。最后使用Imgproc.warpPerspective()获得所需的输出。
对于创建ROI的边界,最好的方法是通过使用一些特定的范围对图像进行阈值,以便仅提取所需的光谱部分。