분류 전체보기
-
HoughLines랑 HoughLinesP의 차이컴공지식/컴퓨터비전 2024. 9. 25. 23:44
결과 값 차이로는 HoughLines()는 직선의 방정식을 찾아준다. 즉, 직선의 기울기와 거리를 찾는 거다.vector 형식의 벡터로 결과를 반환한다.여기서 Vec2f는 두 개의 실수 값(소수점 포함)으로 이루어진 벡터인데, rho와 theta 값을 나타낸다.요약하자면, HoughLines는 감지된 직선의 거리와 각도 정보를 주는 거다.직선이 어느 방향으로, 얼마나 떨어져 있는지를 알 수 있다. HoughLinesP()는 확률적 허프 변환(Probabilistic Hough Transform) 을 사용해서 직선을 찾는다.이 방법은 더 효율적이고, 직선의 시작점과 끝점 좌표를 직접 제공한다.vector 형식의 벡터로 결과를 반환한다.Vec4i는 4개의 정수 값으로 이루어진 벡터인데, 직선의 두 좌표를 나..
-
HoughLinesP를 사용한 확률적 허프 변환 코드컴공지식/컴퓨터비전 2024. 9. 25. 23:40
이 방법은 직선 검출을 할 때 더 효율적이고, 직선의 시작점과 끝점을 직접 제공해주는 장점이 있다.int main() { Mat image, edge, result; vector lines; // 직선의 시작점과 끝점을 저장할 벡터 image = imread("chess_pattern.png"); // 이미지 불러오기 result = image.clone(); // 원본 이미지를 복사하여 결과 저장 cvtColor(image, image, CV_BGR2GRAY); // 컬러 이미지를 그레이스케일로 변환 Canny(image, edge, 50, 200, 3); // Canny 엣지 검출 수행 // 확률적 허프 변환을 이용해 직선 감지 // ..
-
HoughLines를 이용한 직선 감지 코드컴공지식/컴퓨터비전 2024. 9. 25. 23:37
int main() { Mat image, edge, result; float rho, theta, a, b, x0, y0; Point p1, p2; vector lines; // 직선을 저장할 벡터 image = imread("chess_pattern.png"); // 이미지 불러오기 result = image.clone(); // 원본 이미지를 복사하여 결과 저장 cvtColor(image, image, CV_BGR2GRAY); // 컬러 이미지를 그레이스케일로 변환 Canny(image, edge, 50, 200, 3); // Canny 엣지 검출 수행 // Hough 변환을 이용해 직선 감지 // edge: 입력 엣지..
-
Canny 엣지 검출기 구현컴공지식/컴퓨터비전 2024. 9. 25. 23:32
int main() { Mat image, canny; image = imread("lena.png", 0); // 이미지를 흑백으로 불러옴 // Canny 엣지 검출 수행 // image: 입력 이미지, canny: 출력 이미지 // 190: 낮은 임계값 (low threshold) // 200: 높은 임계값 (high threshold) // 3: Sobel 연산에 사용할 커널 크기 Canny(image, canny, 190, 200, 3); // 결과 출력 imshow("Input image", image); imshow("canny", canny); waitKey(0); // 키 입력 대기 } 여기서 주의깊..
-
Sobel 엣지 검출기(Sobel Edge Detector) 구현컴공지식/컴퓨터비전 2024. 9. 25. 23:28
int main() { Mat image, blur, grad_x, grad_y, abs_grad_x, abs_grad_y, result; image = imread("lena.png", 0); // 이미지를 흑백으로 불러옴 GaussianBlur(image, blur, Size(5, 5), 5, 5, BORDER_DEFAULT); // 가우시안 블러로 노이즈 제거 // Sobel 연산 수행 (x 방향 미분) // blur: 입력 이미지, grad_x: x 방향 결과 저장 // 1: x 방향으로 1차 미분, 0: y 방향으로는 미분하지 않음, 3: 커널 크기 Sobel(blur, grad_x, CV_16S, 1, 0, 3); convertSca..
-
엣지 픽셀(Edge pixels)과 엣지(Edges)컴공지식/컴퓨터비전 2024. 9. 25. 23:25
엣지 픽셀은 이미지에서 밝기(인텐시티)가 갑자기 변하는 지점을 말한다.이 그림을 보면 갑자기 탁 튀는 부분이 보이는데 그 부분들이 엣지 픽셀이다.이 그림에는 4개의 엣지 픽셀이 있다. 엣지는 이런 엣지 픽셀들이 서로 연결되어 만들어진 선을 말한다. 다음 그림은 1차 미분(first derivative)을 이용해 엣지를 감지하는 그림이다.1차 미분이란, 이미지의 밝기(강도)가 어떻게 변하는지 즉, 변화의 기울기를 나타낸 게 1차 미분이다.이미지에서 밝기 변화가 갑자기 확 커지면 그 부분이 엣지일 가능성이 높다. 다음은 이미지 그래디언트를 사용해 엣지를 감지하는 방법이다.이건 2D 엣지 감지 방법인데 그라디언트 벡터의 크기(인텐시티)가 클수록 엣지가 있을 가능성이 높다.엣지 감지를 한다는 건 마치, 복잡한..
-
Substitution(치환)에 관하여컴공지식/프로그래밍언어론 2024. 9. 22. 22:21
치환은 어떤 코드에서 변수를 다른 값으로 바꾸는 과정을 얘기한다. 일단 다음과 같이 정하고 시작하자x : 나중에 바꿀 식별자5 : 이 값으로 바꿀거임(+ x x) : 식별자가 들어있는 코드, x와 x를 더한다. 근데 이 표현식에서 x를 5로 바꾸는 과정이 필요한데.. 이제 알아보자 다음 코드를 살펴보자{with {x 5} {+ 10 y}}이 코드가 x를 5로 치환하려고 하는 코드다.근데 문제는 이 표현식 안에 x가 없다!+ 10 y라는 표현식에는 x가 들어있지 않기 때문에 치환할 게 없는 상황이다.잘못된 코드라는 거다.. 다음 코드를 살펴보자{with {x 5} {+ x {with {x 3} 10}}}바깥쪽에서 x는 5로 치환되고 있다. 즉, + x 부분의 x는 5로 바뀐다.근데 안쪽 {with {x 3..
-
초기하 분포와 포아송 분포경제 2024. 9. 20. 16:59
초기하 분포(Hypergeometric Distribution)는 비복원 추출에서 사용된다.즉, 샘플을 뽑을 때 뽑힌 것을 다시 넣지 않는 실험에서, 특정 사건이 발생할 확률을 구하는 데 쓰인다.예를 들어, 상자에 들어있는 검은 공과 흰 공 중에서 몇 개를 뽑았을 때 검은 공이 몇 개 나올 확률을 구하는 거다. 초기하 분포는 아래와 같은 상황에서 적용된다. 모집단에 성공/실패 두 가지 분류가 존재함샘플을 복원하지 않고 추출함모집단의 크기와 추출된 샘플 크기가 고정됨초기하 분포의 확률을 구하는 공식은 다음과 같다. N: 모집단의 크기 (전체 공의 개수)r: 모집단에서 성공의 수 (검은 공의 개수)n: 샘플 크기 (뽑은 공의 개수)x: 샘플에서 성공의 수 (검은 공이 나오는 횟수) 예를 들어, 상자에 검은..