1
私はHoughLinesP
を使って行を特定しました。しかし、私の問題は、検出された行がないことをどのように知るのかです。私はベクトル行をnullと比較しようとしましたが、何も起こりません。具体的には、ここに私のコードはあります:ハフラインP - 回線が検出されていないかどうかを知る方法?
for(size_t k=0; k<lines.size(); k++){
Vec4i l = lines[k];
line(gray, Point(l[0], l[1]), Point(l[2], l[3]),Scalar(0,0,255), 3, CV_AA);
double x = l[2]-l[0];
double y = l[3]-l[1];
double slope = (x/y);
double rad = atan(slope);
double pi = 3.1416;
double deg = (rad*180)/pi;
double fin = deg+90;
int part = 0;
if (lines.empty()){printf("NO LINE IN THIS PORTION OF THE IMAGE!");part = 0;}
else{
if (fin>=0 && fin<=45){part = 1;}
else if (fin>45 && fin<=90){part = 2;}
else if (fin>90 && fin<=135){part = 3;}
else if (fin>135 && fin<=180){part = 4;}
}
printf("portion number = %d angle = %f PART = %d\n",j, fin, part);
}
私はpart
変数で特定しています。検出された行がない場合は、part == 0
が真であることを希望します。しかし、私は、検出された行がないかどうかを知る正しい方法を見つけることができません。イメージ内に既に線がある場合は、角度を印刷するだけです。ありがとう!