由于来自

时间:2015-08-04 12:38:14

标签: android opencv point

我有一张图片,我从中创建了一些线条。我保存了起点和终点。线条基本上是矩形的长边,在图像中绑定了一个白色斑点。矩形放置在某个圆圈中。图片显示在image description

下方

问题是当圆形的下部形成矩形时,起点可以被认为是圆的最低点,即靠近圆的边缘,但是当圆形的上部形成矩形时,如图所示在图像的最后一个刻度盘中,很难找出选择哪个点作为起点来找出靠近刻度盘中心的起点。

是否可以解决如何在圆圈的上部区域交换线的点。请指导我,因为我现在没有想法。

这是用于选择矩形的最长边并打印其点的代码

int maxIndex = 0;
for (int a = 1; a < length.length; a++){
    double newnumber = length[a];
    if ((newnumber > length[maxIndex])){
        maxIndex = a;
    }
} 
System.out.println("Start= "+pts[maxIndex].toString()+" End= "+pts[(maxIndex+1)%4].toString()+", Length="+length[maxIndex]);

此致

1 个答案:

答案 0 :(得分:0)

也许这是一种骚动,但首先想到的是将角落的Y值相加,但不要除以4(不是必需的)。如果它们高于,当矩形为水平时,阈值为4 * sum ,那么您就知道它是“向上”。

在IF语句中使用它来切换上下情况的代码......

int totalY = 0;

for(int i = 0; i < 4; i++){
    totalY += vectorOfYourPoints[i].y;
}

if(totalY > someThresholdYoullSet){
    //do the thing you need to do if it's UP
} else {
    //do the thing you need to do if it's DOWN
}