일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- findContours
- convexhull
- #일상영어
- python list
- c언어
- #프로젝트
- #영어 명언
- #api
- 영어
- #명언
- tensorflow update
- #실생활영어
- 영어명언
- word embedding
- #English
- 딥러닝
- #실생활 영어
- TensorFlow
- object detection
- #1일1영어
- opencv SURF
- Convolution Neural Network
- #영어
- #opencv
- #Android
- #JAVA
- keras
- python __init__
- tokenizing
- #unity
- Today
- Total
목록02. Study/Computer Vision(openframworks&opencv) (37)
When will you grow up?
Perspective Transformation == Homography Matrix == Projective Transformation(세 용어다 각각 차이점은 존재하지만 개념상 같은 개념이라고 생각을 해도 된다.)Homograhpy한 평면을 다른 평면에 투영(Projection) 시켰을 때, 투영된 대응점들 사이에서는 일정한 변환 관계가 성립한다. 이 변환 관계를 Homography라고 한다. ->카메라 위치 수정 이나 환자의 자세 등 이미지 일정 부분 확대시 이용하는 변환 4개의 점와 와핑된 이미지를 이용하여 변환행렬을 구해주면 된다. 결과원본이미지결과 이미지 원본 코드 입니다. // 인풋 이미지 평면 좌표 입력 Point2f inputQuad[4]; // 출력 이미지 평면 좌표 Point2f ou..
Affine Transformation(아핀변환)->하나의 가하체(이미지==Mat)에 아핀변환을 적용하게 되면 변환된 기하체는 원래 기하체와 평행관계를 유지하게 됩니다. 기하체의 이동, 회전, 스케일(scale), 그리고shear 등이 아핀변환에 해당됩니다.[출처] 아핀변환(affine transformation)|작성자 Keychany 사용될 함수 원형입니다. cv::warpAffine : 원본이미지를 Affine변환 시킨다. void cv::warpAffine(InputArray src,//입력이미지OutputArray dst,//출력이미지InputArray M,//2*3 transformation matrixSize dsize,//출력이미지사이즈int flags = INTER_LINEAR,int b..
Convex Hull을 풀기위한 알고리즘 종류에는‘Gift wrapping, Graham’s scan, Quickhull, Divide and conquer, Monotone chain aka Andrew's algorithm, Incremental convex hull algorithm, The ultimate planar convex hull algorithm, Chan's algorithm’ 이러한 다양한 종류의 알고리즘이 있는데, 이중에서 대표적으로 많이 사용하는 Graham’s scan 알고리즘에 대해 알아보겠습니다. Referencehttps://en.wikipedia.org/wiki/Convex_hull_algorithmshttps://ko.wikipedia.org/wiki/%EB%B2%A1..
//참고 : http://docs.opencv.org/Convex Hull이란, 여러 개의 점이 주어졌을 때, 모든 점들을 포함하는 최소 크기의 볼록 다각형입니다 (InputArray points, //벡터 또는 Mat형식의 입력OutputArray hull,//출력 convexhull(볼록 선체)bool clockwise = false,//방향 플래그 true면 시계방향 bool returnPoints = true // 연산 플래그 Mat일 경우 볼록 선체점 반환 아니면 인덱스 반환 ) 결과 전체코드 #include "ofApp.h" using namespace std; ofImage photo; Mat src; Mat src_gray; int thresh = 100; int max_thresh = 2..
참고 : http://docs.opencv.org/예제코드 : http://docs.opencv.org/3.1.0/df/d0d/tutorial_find_contours.html opencv : findContours 함수->영상(이미지) 내에서 외곽선을 추출하는 함수. 함수 원형입니다.void cv::findContours(InputOutputArray image,//원본이미지 OutputArrayOfArrays contours,//외곽선 벡터(배열)OutputArray hierarchy,int mode,//윤곽 검색 모드 설정int method,//윤곽 근사방법(cv::ContourApproximationModes)참조Point offset = Point() //맥락표현에서 오프셋) 외곽선 그리는 함수..
Gamma correction "모든 모니터들은 실제 모니터로 보내지는 영상 정보보다 어둡게 보여준다" 에서 출발된다.잘나와있는곳 : 클릭 모니터 마다 모두 차이는 존재.모니터로 보내지는 영상 정보가 예를 들어 R,G,B 값으로 0.5, 0.5, 0.5 라고 하면 정확히 중간 값의 회색이 화면에 보여져야 하는데 실제로 눈으로 느끼는 것은 중간 보다 좀 더 어둡게 보인다는 이야기입니다. 때문에 모니터로 보내는 영상의 값을 좀 더 높게 보내면 원래 보여주고자 하는 영상을 보여줄수 있습니다. 예를 들어, 0.8, 0.8, 0.8 을 모니터에 보여주려고 하면 눈으로 느껴지는 것은 0.5, 0.5, 0.5 가 된다는 것입니다. 계산 공식이 여러가지로 많이 있는데 일반적으로 다음과 같은 공식을 사용합니다. (보여주..
앞서 강의에서는 Sobel를 이용하여 에지를 검출했었습니다. 이번에는 Canny알고리즘이 적용된 cv::Canny함수를 호출하여 외곽선을 검출 Canny Edge Detection 은 John F. Canny에 의해 개발된 알고리즘 입니다.윤곽을 가장 잘 찾아내면서도 원래 영상의 관련된 에지들을 제거할 수 있는 방법 1.검출한 에지는 필요 이상으로 뚜껍기 때문에 객체를 훨씬 더 식별 하기가 힘들다.2.충분히 낮은 경계 값과 동시에 너무나 많은 무의미한 에지를 포함하지 않도록 충분히 높은 경계 값을 찾기란 힘들기 때문에 이러한 이유로 캐니 알고리즘으로 푼다. Canny( detected_edges, detected_edges, lowThreshold, lowThreshold*ratio, kernel_siz..
에지를 검출하는 필터중 기본적인 Sobel 필터이번에는 소벨(Sobel)필터라고 부르는 필터를 사용해보겟습니다.방향성 필터(Directional filter)라고도 불리는데 사용하는 소벨 필터의 커널에 따라 수평 영상 주파수나 수직 영상 주파수에만 영향을 주기 때문입니다. OpenCV에는 영상에 소벨 연산자를 적용시키는 함수가 있습니다 OpenCV에서 제공되는 sobel함수원형은 아래와 같습니다. cv::Sobel(InputArray src, //입력영상 OutputArray dst, //결과영상int ddepth,//출력 이미지 깊이 조합 참조,8비트일경우 절단유도체int dx, //커널지정int dy, //커널지정int ksize = 3,//정방형 커널크기double scale = 1, //크기dou..
Threshold이진 영상 변환을 시킬수 있다. 어떤 영상내에서 화소값들의 특성을 서로 양분하는 하나의 경계화소값을 찾아주는 역할을 한다. 즉 영상 전체적인 특성을 둘로 나누는 경계값을 찾는다는 의미입니다. opencv 에서 제공되는 threshold사용방법double threshold(InputArray src, OutputArray dst, double thresh, double maxval, int type)//입력영상,결과영상,선택된 경계 값, 수행하려는 경계화 타입으로 maxval의미를조절 타입 dst(x,y)THRESH_BINARY -> src(x,y)가 thresh보다 더 크면 maxval 아니면 0THRESH_BINARY_INV-> src(x,y)가 thresh보다 더 크면 0 아니면 ma..
앞서 포스팅에서는 기본 형태학 연산자인 팽창과 침식을 소개했다 이들로부터 다른 연산자를 정의할 수 있다. 이번에는 열림(opening)과 닫힘(closing)연산자를 소개합니다. 고수준 형태학 필터를 적용하려면 cv::morphologyEx함수를 적절한 함수코드와 함께 사용해야 한다. 기본 침식과 팽창 연산자 측면에서 열림과 닫힘 필터를 간단하게 정의할수있다.팽창한 영상의 침식을 닫힘으로 정의하고침식한 영상의 팽창을 열림으로 정의한다. 닫힘필터는 구조 요소를 완전히 포함하기에 작은 홀이나 틈을 제거하며열림필터는 여러 작은 객체를 제거한다 구조 요소를 포함하기에 너무나 작았던 객체가 제거된다.이러한 필터는 객체 검출에 자주 사용되며닫힘 필터는 잘못 파편화된 객체를 더 작은 조각으로 함께 연결하는 반면에 열..