如何找到与德尔福图片的方向(how to find orientation of a picture

2019-10-21 19:47发布

我需要找到玉米的图片的方向(如下面的例子),他们有不同的角度向左或向右。 我需要把它们倒(90度角与他们的正常)(当他们看起来像一个水滴)有什么办法,我可以很容易地做到这一点?

Answer 1:

作为出发点-找到图像矩 (胡时刻对于复杂表单像梨)。 从链接:

Information about image orientation can be derived by first using the 
second order central moments to construct a covariance matrix.

我怀疑某些图像处理库一样的OpenCV的使用可以给在通常情况下更可靠的结果



Answer 2:

从我得到的印象是,你在这个新秀的OP,所以我坚持的东西很简单:

  1. 计算图像的边界框

    很简单的通过所有像素,并记住min,maxx,y非背景像素的坐标

  2. 计算关键尺寸

    只投通过边界框计算红点的位置几行。 所以,选择启动点,我选择25%,50%,75%的高度。 首先从左侧开始和停止在第一个非背景像素。 然后从右上启动和停止第一个非背景像素。

  3. 轴对准的位置

    开始旋转了一些步骤图像记得那里的红点是对称的位置/停止所以他们几乎是从左,右相同的距离。 另外,边框具有最大高度和最小宽度在轴线对准位置,所以你也可以利用这一点,而不是...

  4. 确定位置

    你有4个选项,如果我打电话的距离l0,l1,l2,r0,r1,r2

    • l左指, r右指
    • 0是上(带蓝色的)线, 1中间, 2底部

    然后你想位置是如果(l0==r0)>=(l1==r1)>=(l2==r2)和边界框是在更大y轴线然后在x轴,因此通过旋转90度,直到找到匹配或直接从距离确定方向和旋转只有一次...

[笔记]

您将需要访问图像的像素,所以我强烈建议您使用Graphics::TBitmapVCL。 看看这里GFX用C特地部分GDI的位图 ,并在这个高海拔的照片找到地平线可能会有点帮助。

我使用C ++VCL所以你必须转换为帕斯卡VCL的东西是一样的...



文章来源: how to find orientation of a picture with delphi