コード例 #1
0
ファイル: visualizer.cpp プロジェクト: XPerianer/Visualizer
void Visualizer::Run(){
        //std::cout << animationStatus << "...";

        switch(animationStatus) {
        case 0: clear(); break;
        case 1: stroboscope(); break;
        case 2: lightchange(); break;
        case 3: fadeIn(); break;
        case 4: pulseCircle(); break;
        case 5: lines(); break;
        case 6: circles(); break;
        case 7: randomLines(); break;
        case 8: square(); break;
        case 9: randomPixel(); break;
        case 10: rotateLine(); break;
        }
        return;

}
コード例 #2
0
int main(int argc, char ** argv) {
//Image 1
    cv::Mat coins1 = cv::imread("images/coins1.png", CV_LOAD_IMAGE_GRAYSCALE);
    cv::Mat ddx1;
    cv::Mat ddy1;
    cv::Mat magnitude1;
    cv::Mat gradient1;
    cv::Mat magThreshold1;
    cv::Mat houghSpace1;
    cv::Mat houghSpaceDisplay1;
    
//    ddx(coins1, ddx1);
//    ddy(coins1, ddy1);
    magnitude(coins1, magnitude1);
    gradientDirection(coins1, gradient1);
    magThreshold(magnitude1, magThreshold1, 32);
    hough(magThreshold1, gradient1, houghSpace1);
//    displayHough(houghSpace1, houghSpaceDisplay1, magThreshold1.rows, magThreshold1.cols);
    circles(houghSpace1, coins1, 21); 
 
/*    myNormalize(ddx1);
    myNormalize(ddy1);
    myNormalize(magnitude1);
    myNormalize(gradient1);
 
    cv::namedWindow("Ddx1", CV_WINDOW_AUTOSIZE);
    cv::namedWindow("Ddy1", CV_WINDOW_AUTOSIZE);
    cv::namedWindow("Magnitude1", CV_WINDOW_AUTOSIZE);
    cv::namedWindow("Gradient Direction1", CV_WINDOW_AUTOSIZE);
    cv::namedWindow("Magnitude threshold1", CV_WINDOW_AUTOSIZE);
    cv::namedWindow("Hough Space1", CV_WINDOW_AUTOSIZE);
*/   cv::namedWindow("Circled1", CV_WINDOW_AUTOSIZE);
 
//    cv::imshow("Ddx1", ddx1);
//    cv::imshow("Ddy1", ddy1);
//    cv::imshow("Magnitude1", magnitude1);
//    cv::imshow("Gradient Direction1", gradient1);
//    cv::imshow("Magnitude threshold1", magThreshold1);
//    cv::imshow("Hough Space1", houghSpaceDisplay1);
    cv::imshow("Circled1", coins1);

//Image 2
    cv::Mat coins2 = cv::imread("images/coins2.png", CV_LOAD_IMAGE_GRAYSCALE);
    cv::Mat ddx2;
    cv::Mat ddy2;
    cv::Mat magnitude2;
    cv::Mat gradient2;
    cv::Mat magThreshold2;
    cv::Mat houghSpace2;
    cv::Mat houghSpaceDisplay2;
    
//    ddx(coins2, ddx2);
//    ddy(coins2, ddy2);
    magnitude(coins2, magnitude2);
    gradientDirection(coins2, gradient2);
    magThreshold(magnitude2, magThreshold2, 32);
    hough(magThreshold2, gradient2, houghSpace2);
//    displayHough(houghSpace2, houghSpaceDisplay2, magThreshold2.rows, magThreshold2.cols);
    circles(houghSpace2, coins2, 22); 
 
/*    myNormalize(ddx2);
    myNormalize(ddy2);
    myNormalize(magnitude2);
    myNormalize(gradient2);
 
    cv::namedWindow("Ddx2", CV_WINDOW_AUTOSIZE);
    cv::namedWindow("Ddy2", CV_WINDOW_AUTOSIZE);
    cv::namedWindow("Magnitude2", CV_WINDOW_AUTOSIZE);
    cv::namedWindow("Gradient Direction2", CV_WINDOW_AUTOSIZE);
    cv::namedWindow("Magnitude threshold2", CV_WINDOW_AUTOSIZE);
    cv::namedWindow("Hough Space2", CV_WINDOW_AUTOSIZE);
*/   cv::namedWindow("Circled2", CV_WINDOW_AUTOSIZE);
 
//    cv::imshow("Ddx2", ddx2);
//    cv::imshow("Ddy2", ddy2);
//    cv::imshow("Magnitude2", magnitude2);
//    cv::imshow("Gradient Direction2", gradient2);
//    cv::imshow("Magnitude threshold2", magThreshold2);
//    cv::imshow("Hough Space2", houghSpaceDisplay2);
    cv::imshow("Circled2", coins2);

//Image 3
    cv::Mat coins3 = cv::imread("images/coins3.png", CV_LOAD_IMAGE_GRAYSCALE);
    cv::Mat ddx3;
    cv::Mat ddy3;
    cv::Mat magnitude3;
    cv::Mat gradient3;
    cv::Mat magThreshold3;
    cv::Mat houghSpace3;
    cv::Mat houghSpaceDisplay3;
    
//    ddx(coins3, ddx3);
//   ddy(coins3, ddy3);
    magnitude(coins3, magnitude3);
    gradientDirection(coins3, gradient3);
    magThreshold(magnitude3, magThreshold3, 20);
    hough(magThreshold3, gradient3,houghSpace3);
//    displayHough(houghSpace3, houghSpaceDisplay3, magThreshold3.rows, magThreshold3.cols);
    circles(houghSpace3, coins3, 12); 
 
//    myNormalize(ddx3);
//    myNormalize(ddy3);
    myNormalize(magnitude3);
    myNormalize(gradient3);
 
//    cv::namedWindow("Ddx3", CV_WINDOW_AUTOSIZE);
//    cv::namedWindow("Ddy3", CV_WINDOW_AUTOSIZE);
//    cv::namedWindow("Magnitude3", CV_WINDOW_AUTOSIZE);
//    cv::namedWindow("Gradient Direction3", CV_WINDOW_AUTOSIZE);
//    cv::namedWindow("Magnitude threshold3", CV_WINDOW_AUTOSIZE);
//    cv::namedWindow("Hough Space3", CV_WINDOW_AUTOSIZE);
    cv::namedWindow("Circled3", CV_WINDOW_AUTOSIZE);
 
//    cv::imshow("Ddx3", ddx3);
//    cv::imshow("Ddy3", ddy3);
//    cv::imshow("Magnitude3", magnitude3);
//    cv::imshow("Gradient Direction3", gradient3);
//    cv::imshow("Magnitude threshold3", magThreshold3);
//    cv::imshow("Hough Space3", houghSpaceDisplay3);
    cv::imshow("Circled3", coins3);
 
    
    cv::waitKey();
 
    return 0;
}
コード例 #3
0
ファイル: misc.c プロジェクト: olekhov/proggy
//
// смена ролей (a,b)<->(c,d). см. рисунок output2.gif
void swap_side(int s)
{
 int    a, b, c, d, ea, eb, eac, ead, ebc, ebd, sad, sac, sbc, sbd;
 double sx, sy;
 
 ea=side[s].ea; 
 eb=side[s].eb;
 a=side[s].a; b=side[s].b; c=side[s].c; d=side[s].d;

 if(elem[ea].ei==eb) {ead=elem[ea].ej; eac=elem[ea].ek; 
              sad=elem[ea].sj; sac=elem[ea].sk;}
 
 if(elem[ea].ej==eb) {ead=elem[ea].ek; eac=elem[ea].ei; 
              sad=elem[ea].sk; sac=elem[ea].si;}   
 
 if(elem[ea].ek==eb) {ead=elem[ea].ei; eac=elem[ea].ej;
              sad=elem[ea].si; sac=elem[ea].sj;}

 if(elem[eb].ei==ea) {ebc=elem[eb].ej; ebd=elem[eb].ek;
              sbc=elem[eb].sj; sbd=elem[eb].sk;}

 if(elem[eb].ej==ea) {ebc=elem[eb].ek; ebd=elem[eb].ei;
              sbc=elem[eb].sk; sbd=elem[eb].si;}
 
 if(elem[eb].ek==ea) {ebc=elem[eb].ei; ebd=elem[eb].ej;
              sbc=elem[eb].si; sbd=elem[eb].sj;}

 elem[ea].i =a;   elem[ea].j =b;   elem[ea].k =d;  
 elem[ea].ei=ebd; elem[ea].ej=ead; elem[ea].ek=eb;  
 elem[ea].si=sbd; elem[ea].sj=sad; elem[ea].sk=s;  
  
 elem[eb].i =a;   elem[eb].j =c;   elem[eb].k =b;  
 elem[eb].ei=ebc; elem[eb].ej=ea;  elem[eb].ek=eac;  
 elem[eb].si=sbc; elem[eb].sj=s;   elem[eb].sk=sac;  

 if(eac!=-1)
  {
   if(elem[eac].ei==ea) elem[eac].ei=eb;
   if(elem[eac].ej==ea) elem[eac].ej=eb;
   if(elem[eac].ek==ea) elem[eac].ek=eb; 
  }
 
 if(ebd!=-1)
  {
   if(elem[ebd].ei==eb) elem[ebd].ei=ea;
   if(elem[ebd].ej==eb) elem[ebd].ej=ea;
   if(elem[ebd].ek==eb) elem[ebd].ek=ea; 
  }
 
 if(side[sad].ea==ea) {side[sad].a=b;}
 if(side[sad].eb==ea) {side[sad].b=b;}

 if(side[sbc].ea==eb) {side[sbc].a=a;}
 if(side[sbc].eb==eb) {side[sbc].b=a;}

 if(side[sbd].ea==eb) {side[sbd].ea=ea; side[sbd].a=a;}
 if(side[sbd].eb==eb) {side[sbd].eb=ea; side[sbd].b=a;}
 
 if(a<b)
  {side[s].c=a; side[s].d=b; side[s].a=d; side[s].b=c;
   side[s].ea=ea; side[s].eb=eb;}
 else 
  {side[s].c=b; side[s].d=a; side[s].a=c; side[s].b=d;
   side[s].ea=eb; side[s].eb=ea;}

 sx = node[side[s].c].x - node[side[s].d].x;
 sy = node[side[s].c].y - node[side[s].d].y;
 side[s].s = SQRT(sx*sx+sy*sy);

 if(side[sac].ea==ea) {side[sac].ea=eb; side[sac].a=b;}
 if(side[sac].eb==ea) {side[sac].eb=eb; side[sac].b=b;}
 
 if(side[sad].ea==ea) {side[sad].a=b;}
 if(side[sad].eb==ea) {side[sad].b=b;}

 if(side[sbc].ea==eb) {side[sbc].a=a;}
 if(side[sbc].eb==eb) {side[sbc].b=a;}

 if(side[sbd].ea==eb) {side[sbd].ea=ea; side[sbd].a=a;}
 if(side[sbd].eb==eb) {side[sbd].eb=ea; side[sbd].b=a;}

 circles(ea);
 circles(eb);
}