참고:
http://docs.opencv.org/doc/tutorials/imgproc/imgtrans/hough_lines/hough_lines.html
- #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;
- }
'OpenCV > OpenCV 강좌' 카테고리의 다른 글
opencv python - Harris Corner Detection (2) | 2015.11.13 |
---|---|
opencv python - K-Means Clustering (3) | 2015.11.10 |
opencv python - 극좌표를 이용하여 방사형으로 라인 그리기 (0) | 2015.11.07 |
허프라인(HoughLine) 태스트 (9) | 2015.10.23 |
opencv에서 2대이상의 카메라 사용하기 (17) | 2015.09.24 |
OpenCV 튜토리얼 – OpenCV를 사용하여 두 개의 이미지를 더하기(블렌딩) (6) | 2015.02.08 |
OpenCV 튜토리얼 – 마스크(mask) 오퍼레이션 (0) | 2015.01.09 |
OpenCV 튜토리얼 – Mat (기본 이미지 컨테이너) 2/2 (0) | 2015.01.08 |
포스트 작성시에는 문제 없었지만 이후 문제가 생길 수 있습니다.
질문을 남겨주면 가능한 빨리 답변드립니다.
여러분의 응원으로 좋은 컨텐츠가 만들어집니다.
지금 본 내용이 도움이 되었다면 유튜브 구독 부탁드립니다.
감사합니다 ~~
유튜브 구독하기
제가 쓴 책도 한번 검토해보세요 ^^
-
-
-
인옵 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;
}
올려주신 코드 그대로 사용했어요 -
인옵 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);
}
이부분 없애니 모서리검출은 잘 되고 저부분 그대로 사용하면 에러가 발생하는데
중단점 트리거, 엑세스초과, 힙 손상 이런에러 뜨길래 스택예약 크기 변경했는데도 그대로네요....-
이렇게 하니 일단은 실행은 되는 군요..종료시 에러가 나서 그러지..
리눅스에선 문제 없었는데..윈도우로 하니 에러가 나는 거였군요..
#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;
}
-