int main()
{
	int thresh=25;
	CvCapture* capture;
	capture = cvCreateCameraCapture(-1);
	IplImage *frame,*res;
	char win[]="video_stream";
	char win2[]="outline_feed";
	cvNamedWindow(win,CV_WINDOW_AUTOSIZE);
	cvNamedWindow(win2,CV_WINDOW_AUTOSIZE);
	cvCreateTrackbar("Threshold",win2,&thresh,128);

	while(1)
	{
		frame=cvQueryFrame(capture);
		res = findedge(frame,thresh);
		clearnoise(res,0, 3);
		clearnoise(res,1, 3);
		cvShowImage(win,frame);
		cvShowImage(win2,res);
		
		if(cvWaitKey(50)==27)
			break;
	}
	cvReleaseImage(&frame);
	cvReleaseImage(&res);
	cvReleaseCapture(&capture);
	cvDestroyWindow(win);
	cvDestroyWindow(win2);
	return 0;
}
Exemplo n.º 2
0
int linkedgenpolys (edge2polydata_t *e2pdp) {
    edge_t *ep;
    poly_t *p0p, *p1p, *pp;

    if (!(ep = findedge (e2pdp->tlid))) {
        SUwarning (1, "linkedgenpolys", "findedge failed");
        return -1;
    }
    p0p = p1p = NULL;
    if (e2pdp->polyidl && !(p0p = findpoly (e2pdp->polyidl, e2pdp->cenidl))) {
        SUwarning (1, "linkedgenpolys", "findpoly failed for left poly");
        return -1;
    }
    if (e2pdp->polyidr && !(p1p = findpoly (e2pdp->polyidr, e2pdp->cenidr))) {
        SUwarning (1, "linkedgenpolys", "findpoly failed for right poly");
        return -1;
    }
    if (
        (ep->p0p && p0p && !ep->p1p && !p1p) ||
        (!ep->p0p && !p0p && ep->p1p && p1p)
    )
        pp = p0p, p0p = p1p, p1p = pp;
    if ((ep->p0p && p0p) || (ep->p1p && p1p))
        SUwarning (1, "linkedgenpolys", "edge has polys attached");
    if (p0p && !ep->p0p) {
        ep->p0p = p0p;
        if (p0p->edgepl == p0p->edgepn) {
            if (!(p0p->edgeps = vmresize (
                Vmheap, p0p->edgeps,
                (p0p->edgepn * 2) * sizeof (edge_t *), VM_RSCOPY
            ))) {
                SUwarning (1, "linkedgenpolys", "vmresize failed (1)");
                return -1;
            }
            p0p->edgepn *= 2;
        }
        p0p->edgeps[(ep->p0i = p0p->edgepl++)] = ep;
    }
    if (p1p && !ep->p1p) {
        ep->p1p = p1p;
        if (p1p->edgepl == p1p->edgepn) {
            if (!(p1p->edgeps = vmresize (
                Vmheap, p1p->edgeps,
                (p1p->edgepn * 2) * sizeof (edge_t *), VM_RSCOPY
            ))) {
                SUwarning (1, "linkedgenpolys", "vmresize failed (2)");
                return -1;
            }
            p1p->edgepn *= 2;
        }
        p1p->edgeps[(ep->p1i = p1p->edgepl++)] = ep;
    }
    return 0;
}