これは、OpenCVを使ってCで画像内のテキストを検出することに関係するプロジェクトに関するものです。プロセスは、対応する輪郭の内側と外側の色を検出する方法であり、法線を描くことです等間隔の位置にある等高線上に配置し、法線の端点の対応する位置でピクセルの色を抽出します。opencvで輪郭の長さを見つける
次のコードを使用して実装しようとしていますが、機能しません。つまり、法線を描くが、等間隔ではない。
for(; contours!=0 ; contours = contours->h_next)
{
CvScalar color = CV_RGB(rand()&255, rand()&255, rand()&255);
cvDrawContours(cc_color, contours, color, CV_RGB(0,0,0), -1, 1, 8, cvPoint(0,0));
ptr = contours;
for(i=1; i<ptr->total; i++)
{
p1 = CV_GET_SEQ_ELEM(CvPoint, ptr, i);
p2 = CV_GET_SEQ_ELEM(CvPoint, ptr, i+1);
x1 = p1->x;
y1 = p1->y;
x2 = p2->x;
y2 = p2->y;
printf("%d %d %d %d\n",x1,y1,x2,y2);
draw_normals(x1,y1,x2,y2);
}
}
だから私は、私が描きたい法線の数でそれを分割することができますように、輪郭の長さを見つけるための方法があります。前もって感謝します。
EDIT:draw_normal関数は、渡された2点間の法線をパラメータとして描画します。
元画像、アップロードされた場合、あなたが得た、出力を所望の出力は、この質問 –