일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- c언어
- text2img
- #opencv
- 영어
- #프로젝트
- 영어명언
- opencv SURF
- python 알고리즘
- #1일1영어
- #English
- #영어 명언
- python list
- object detection
- TensorFlow
- 완전탐색
- #영어
- #실생활 영어
- keras
- 딥러닝
- Convolution Neural Network
- #일상영어
- 이미지 생성
- convexhull
- tokenizing
- findContours
- #실생활영어
- #Android
- word embedding
- tensorflow update
- python __init__
- Today
- Total
When will you grow up?
22. 관심점 검출(Harris corner detector) 본문
22. 관심점 검출(Harris corner detector)
미카이 2016. 12. 2. 17:03reference(저작권에 위배되는 내용이 있으면 바로 지우겠습니다.)
book
-> OpenCV를 활용한 컴퓨터 비전 프로그래밍 - 기본 영상처리부터 고급 컴퓨터 비전까지 아우르는 |
search
->
http://docs.opencv.org/3.1.0/d4/d7d/tutorial_harris_detector.html
컴퓨터 비전(computer vision)에서는 객체 인식, 영상 정합(image registration), 시각 추적 ,3D 재구성 등 많은 문제를 해결하기 위해 특징점(keypoint or feature point)이라고 부르기도 하는 관심점(point of interest)의 개념을 사용.
영상 내용 분석에 관심점을 사용하기 때문에 영상의 시점, 크기나 방향에 관계없이 동일한 장면이나 객체 위치에서 이상적으로 특징점을 검출 할 수 있다.
-영상에서 코너 검출
코너는 두 에지 사이에 교차하므로 위치를 정확하게 찾아낼 수 있는 2차원적인 특징 때문에 다른 영상에서 반복해서 위치를 정밀하게 찾기가 어려운 점과 대비된다.
해리스 코너(Harris corner)
openCV함수는 -> cv::cornerHarris
cornerHarris(image, //입력영상
cornerStrength, //코너 추출 영상(output)
3, // 이웃 크기
3, // 직경 크기
0.01) // 해리스 파라미터
결과 영상 입니다.
원본 harris corner
[과정]
- 원본이미지 로딩(src)
- 원본 이미지를 gray로 cvt (src_gray)
- cornerHarris를 이용하여 gray된 이미지 변경(dst)
- dst 를 normalize (dst_norm)
- dst_norm을 convertScaleAbs를 이용하여 절대 값 결과를 8비트로 변환(dst_norm_scaled)
- dst_norm를 순회하면서 thresh보다 높은곳에 circle표시
코드 입니다
Mat src, src_gray; int thresh = 200; int max_thresh = 255; void cornerHarris_demo(int, void*); //-------------------------------------------------------------- void ofApp::setup() { src = imread("freeimage.jpg", 1); imshow("원본",src); cvtColor(src, src_gray, COLOR_BGR2GRAY); Mat dst, dst_norm, dst_norm_scaled; dst = Mat::zeros(src.size(), CV_32FC1); int blockSize = 3; int apertureSize = 3; double k = 0.04; cornerHarris(src_gray, dst, blockSize, apertureSize, k, BORDER_DEFAULT); normalize(dst, dst_norm, 0, 255, NORM_MINMAX, CV_32FC1, Mat()); convertScaleAbs(dst_norm, dst_norm_scaled); for (int j = 0; j < dst_norm.rows; j++) { for (int i = 0; i < dst_norm.cols; i++) { if ((int)dst_norm.at(j, i) > thresh) { circle(dst_norm_scaled, Point(i, j), 5, Scalar(0), 2, 8, 0); } } } imshow("harriscorner", dst_norm_scaled); waitKey(0);
'02. Study > Computer Vision(openframworks&opencv)' 카테고리의 다른 글
[openCV] SIFT와 SURF를 이용한 WebCam 영상 매칭 (5) | 2016.12.10 |
---|---|
23. SURF 특징 검출기 (0) | 2016.12.04 |
opencv로 Panorama Image 만들기 (0) | 2016.11.26 |
21. Perspective Transformation(투영변환) (0) | 2016.11.25 |
20.Affine Transformation (0) | 2016.11.13 |