diff options
Diffstat (limited to 'pdp_opencv_hough_lines.cc')
-rw-r--r-- | pdp_opencv_hough_lines.cc | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/pdp_opencv_hough_lines.cc b/pdp_opencv_hough_lines.cc index 535e1ca..224531e 100644 --- a/pdp_opencv_hough_lines.cc +++ b/pdp_opencv_hough_lines.cc @@ -42,7 +42,7 @@ typedef struct pdp_opencv_hough_lines_struct t_outlet *x_outlet0; t_outlet *x_outlet1; - t_atom x_list[3]; + t_atom x_list[5]; int x_packet0; int x_packet1; @@ -139,9 +139,15 @@ static void pdp_opencv_hough_lines_process_rgb(t_pdp_opencv_hough_lines *x) pt2.x = cvRound(x0 - 1000*(-b)); pt2.y = cvRound(y0 - 1000*(a)); cvLine( x->image, pt1, pt2, CV_RGB(255,0,0), 3, 8 ); - sprintf( tindex, "%d", i ); + SETFLOAT(&x->x_list[0], i); + SETFLOAT(&x->x_list[1], pt1.x); + SETFLOAT(&x->x_list[2], pt1.y); + SETFLOAT(&x->x_list[3], pt2.x); + SETFLOAT(&x->x_list[4], pt2.y); + outlet_list( x->x_outlet1, 0, 5, x->x_list ); pt1.x = (pt1.x+pt2.x)/2; pt1.y = (pt1.y+pt2.y)/2; + sprintf( tindex, "%d", i ); cvPutText( x->image, tindex, pt1, &x->font, CV_RGB(255,255,255)); } } @@ -160,9 +166,15 @@ static void pdp_opencv_hough_lines_process_rgb(t_pdp_opencv_hough_lines *x) CvPoint* line = (CvPoint*)cvGetSeqElem(x->x_lines,i); char tindex[10]; cvLine( x->image, line[0], line[1], CV_RGB(255,0,0), 3, 8 ); - sprintf( tindex, "%d", i ); + SETFLOAT(&x->x_list[0], i); + SETFLOAT(&x->x_list[1], line[0].x); + SETFLOAT(&x->x_list[2], line[0].y); + SETFLOAT(&x->x_list[3], line[1].x); + SETFLOAT(&x->x_list[4], line[1].y); + outlet_list( x->x_outlet1, 0, 5, x->x_list ); line[0].x = (line[0].x+line[1].x)/2; line[0].y = (line[0].y+line[1].y)/2; + sprintf( tindex, "%d", i ); cvPutText( x->image, tindex, line[0], &x->font, CV_RGB(255,255,255)); } } @@ -190,9 +202,15 @@ static void pdp_opencv_hough_lines_process_rgb(t_pdp_opencv_hough_lines *x) pt2.x = cvRound(x0 - 1000*(-b)); pt2.y = cvRound(y0 - 1000*(a)); cvLine( x->image, pt1, pt2, CV_RGB(255,0,0), 3, 8 ); - sprintf( tindex, "%d", i ); + SETFLOAT(&x->x_list[0], i); + SETFLOAT(&x->x_list[1], pt1.x); + SETFLOAT(&x->x_list[2], pt1.y); + SETFLOAT(&x->x_list[3], pt2.x); + SETFLOAT(&x->x_list[4], pt2.y); + outlet_list( x->x_outlet1, 0, 5, x->x_list ); pt1.x = (pt1.x+pt2.x)/2; pt1.y = (pt1.y+pt2.y)/2; + sprintf( tindex, "%d", i ); cvPutText( x->image, tindex, pt1, &x->font, CV_RGB(255,255,255)); } } @@ -345,8 +363,8 @@ void *pdp_opencv_hough_lines_new(t_floatarg f) x->x_height = 240; x->x_size = x->x_width * x->x_height; - x->x_mode = CV_HOUGH_STANDARD; - x->x_threshold = 200; + x->x_mode = CV_HOUGH_PROBABILISTIC; + x->x_threshold = 50; x->x_maxlines = 10; x->x_minlength = 30.0; x->x_gap = 10.0; |