반응형

참고:

http://docs.opencv.org/doc/tutorials/imgproc/imgtrans/hough_lines/hough_lines.html








  1. #include "opencv2/imgcodecs.hpp"  
  2. #include "opencv2/highgui/highgui.hpp"  
  3. #include "opencv2/imgproc/imgproc.hpp"  
  4.   
  5. #include <iostream>  
  6.   
  7. using namespace cv;  
  8. using namespace std;  
  9.   
  10.   
  11. int main(int argc, char** argv)  
  12. {  
  13.   
  14.     VideoCapture cap1(0);  
  15.   
  16.    // cap1.set(3,320);  
  17.   //  cap1.set(4,240);  
  18.   
  19.     if (!cap1.isOpened())  
  20.     {  
  21.         printf("카메라를 열수 없습니다. \n");  
  22.     }  
  23.   
  24.   
  25.     Mat frame0;  
  26.   
  27.   
  28.   
  29.     for (;;)  
  30.     {  
  31.         cap1 >> frame0;  
  32.         cvtColor(frame0, frame0, CV_BGR2GRAY);  
  33.   
  34.         Mat dst, cdst;  
  35.         Canny(frame0, dst, 50, 200, 3);  
  36.         cvtColor(dst, cdst, COLOR_GRAY2BGR);  
  37.   
  38.   
  39.         vector<Vec4i> lines;  
  40.         HoughLinesP(dst, lines, 1, CV_PI/180, 50, 50, 10 );  
  41.         forsize_t i = 0; i < lines.size(); i++ )  
  42.         {  
  43.             Vec4i l = lines[i];  
  44.             line( cdst, Point(l[0], l[1]), Point(l[2], l[3]), Scalar(0,0,255),
  45.                   3, LINE_AA);  
  46.         }  
  47.   
  48.         imshow("original", frame0);  
  49.         imshow("houghline", cdst);  
  50.   
  51.   
  52.         if (waitKey(30) >= 0) break;  
  53.     }  
  54.   
  55.   
  56.     return 0;  
  57. }  



반응형

포스트 작성시에는 문제 없었지만 이후 문제가 생길 수 있습니다.
개선 사항을 댓글로 남겨주면 가능한 빨리 반영하도록 하겠습니다.

여러분의 응원으로 좋은 컨텐츠가 만들어집니다.
지금 본 내용이 도움이 되었다면 유튜브 구독 부탁드립니다. 감사합니다 ~~

유튜브 구독하기


제가 쓴 책도 한번 검토해보세요 ^^

  1. 2015.10.24 00:36

    비밀댓글입니다

  2. 인옵 2015.11.16 23:28

    코드 실행했는데 OpenCV Error : Assertion failed라고 뜨는데 뭐가문제일까요..

    • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2015.11.16 23:34 신고

      VideoCapture cap1(0); 으로 수정해주세요..

      웹캠 두개 달아놓고 태스트하다가 깜빡하고 그대로 올려서 그래요..

  3. 인옵 2015.11.16 23:41

    혹시나해서 0으로 해봤는데 디버그는 성공이라고뜨는데 프로그램이 종료되네요...

  4. 인옵 2015.11.17 23:21

    #include "opencv2/imgcodecs.hpp"
    #include "opencv2/highgui/highgui.hpp"
    #include "opencv2/imgproc/imgproc.hpp"

    #include <iostream>

    using namespace cv;
    using namespace std;


    int main(int argc, char** argv)
    {

    VideoCapture cap1(0);

    // cap1.set(3,320);
    // cap1.set(4,240);

    if (!cap1.isOpened())
    {
    printf("카메라를 열수 없습니다. \n");
    }


    Mat frame0;



    for (;;)
    {
    cap1 >> frame0;
    cvtColor(frame0, frame0, CV_BGR2GRAY);

    Mat dst, cdst;
    Canny(frame0, dst, 50, 200, 3);
    cvtColor(dst, cdst, COLOR_GRAY2BGR);


    vector<Vec4i> lines;
    HoughLinesP(dst, lines, 1, CV_PI / 180, 50, 50, 10);
    for (size_t i = 0; i < lines.size(); i++)
    {
    Vec4i l = lines[i];
    line(cdst, Point(l[0], l[1]), Point(l[2], l[3]), Scalar(0, 0, 255),
    3, LINE_AA);
    }

    imshow("original", frame0);
    imshow("houghline", cdst);


    if (waitKey(30) >= 0) break;
    }


    return 0;
    }

    올려주신 코드 그대로 사용했어요

    • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2015.11.18 02:49 신고

      코드에는 이상이 없군요.. 먼가 다른 문제 같은데요..

  5. 인옵 2015.11.18 23:00

    vector<Vec4i> lines;
    HoughLinesP(dst, lines, 1, CV_PI / 180, 50, 50, 10);
    for (size_t i = 0; i < lines.size(); i++)
    {
    Vec4i l = lines[i];
    line(cdst, Point(l[0], l[1]), Point(l[2], l[3]), Scalar(0, 0, 255),
    3, LINE_AA);
    }

    이부분 없애니 모서리검출은 잘 되고 저부분 그대로 사용하면 에러가 발생하는데
    중단점 트리거, 엑세스초과, 힙 손상 이런에러 뜨길래 스택예약 크기 변경했는데도 그대로네요....

    • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2015.11.19 05:01 신고

      이렇게 하니 일단은 실행은 되는 군요..종료시 에러가 나서 그러지..
      리눅스에선 문제 없었는데..윈도우로 하니 에러가 나는 거였군요..

      #include "opencv2/imgcodecs.hpp"
      #include "opencv2/highgui/highgui.hpp"
      #include "opencv2/imgproc/imgproc.hpp"

      #include <iostream>

      using namespace cv;
      using namespace std;


      int main(int argc, char** argv)
      {

      VideoCapture cap1(0);

      // cap1.set(3,320);
      // cap1.set(4,240);

      if (!cap1.isOpened())
      {
      printf("카메라를 열수 없습니다. \n");
      }


      Mat frame0;
      Mat dst, cdst;
      vector<Vec4i> lines;

      for (;;)
      {
      cap1 >> frame0;
      cvtColor(frame0, frame0, CV_BGR2GRAY);


      Canny(frame0, dst, 50, 200, 3);
      cvtColor(dst, cdst, COLOR_GRAY2BGR);



      HoughLinesP(dst, lines, 1, CV_PI / 180, 50, 50, 10);
      for (size_t i = 0; i < lines.size(); i++)
      {
      Vec4i l = lines[i];
      line(cdst, Point(l[0], l[1]), Point(l[2], l[3]), Scalar(0, 0, 255),
      3, LINE_AA);
      }

      imshow("original", frame0);
      imshow("houghline", cdst);


      if (waitKey(30) >= 0) break;
      }

      return 0;
      }

+ Recent posts