분류 전체보기
-
inRange 함수컴공지식/컴퓨터비전 2024. 10. 2. 22:50
이 함수는 이미지나 배열에서 특정 범위에 속하는 값들을 찾아내서 이진 이미지(흑백)로 변환하는 데 사용한다.예를 들어, 어떤 이미지에서 빨간색만 골라내고 싶을 때 이 함수를 쓸 수 있다.void inRange(cv::InputArray src, cv::InputArray lowerb, cv::InputArray upperb, cv::OutputArray dst) 이런 모양이다. lowerb는 하한선, 배열이나 스칼라 값으로 주어질 수 있다. 이 값보다 크거나 같은 픽셀만 선택된다.upperb는 상한선, 마찬가지로 배열이나 스칼라 값으로 주어지며, 이 값보다 작거나 같은 픽셀만 선택된다.dst는 결과가 저장될 출력 배열이다. 이 배열은 src와 같은 크기로 만들어지고, 결과로 나오는 이미지는 CV_8U(8..
-
adaptiveThreshold 함수 코드컴공지식/컴퓨터비전 2024. 10. 2. 22:46
void adaptiveThreshold(Mat src, Mat dst, double maxval, int adaptiveMethod, int thresholdType, int blockSize, double C) 이렇게 생겼다.double maxval은 임계값을 넘었을 때 적용할 최대 값이고 보통 255로 둔다.int adaptiveMethod은 임계값을 계산하는 방식인데 두 가지가 있다. ADAPTIVE_THRESH_MEAN_C: 주변 영역의 평균을 사용해 임계값을 계산ADAPTIVE_THRESH_GAUSSIAN_C: 가우시안 가중 평균을 사용해 임계값을 계산int thresholdType은 이진화 방법이다. 주로 THRESH_BINARY(임계값을 넘으면 흰색, 아니면 검정)나 THRESH_BINAR..
-
threshold 처리 코드컴공지식/컴퓨터비전 2024. 10. 2. 22:42
이렇게 생겼다double threshold(Mat src, Mat dst, double thresh, double maxval, int type); double thresh가 픽셀 값과 비교할 임계값이고double maxval은 임계값을 넘는 픽셀에 할당될 값이다. 예를 들어 255 같은 값을 주면 흰색으로 변한다.int type은 임계값 처리 방식이다. 아래와 같이 쓸 수 있다. THRESH_BINARY: 임계값보다 크면 maxval, 작으면 0.THRESH_BINARY_INV: 위와 반대로 임계값보다 작으면 maxval, 크면 0.THRESH_TRUNC: 임계값보다 크면 그 픽셀 값을 임계값으로, 작으면 그대로 유지.THRESH_TOZERO: 임계값보다 크면 그대로 두고, 작으면 0.THRESH_TO..
-
GrabCut이란?컴공지식/컴퓨터비전 2024. 10. 2. 22:16
GrabCut은 이미지에서 배경과 객체를 분리하는 방법 중 하나다.이 방법은 반자동 방식으로, 사용자가 먼저 대충 영역을 지정해주고, 컴퓨터가 나머지를 알아서 처리해주는 거다. 작동 방식으로는사용자가 관심 있는 부분에 사각형을 입력한다. 사각형 바깥은 확실한 배경으로 처리되고, 사각형 안쪽은 미지의 영역으로 취급된다. "여기는 뭐지?" 하고 생각하는 거다.컴퓨터가 초기 레이블링을 한다. 사용자가 지정한 데이터를 바탕으로, 컴퓨터는 자동으로 배경과 객체를 나누려고 시도한다. 이 과정에서 픽셀을 배경이나 객체로 라벨링하거나, 그게 애매하면 임시로 할당해둔다.가우시안 혼합 모델(GMM) 을 사용해 객체와 배경을 모델링한다. GMM은 픽셀의 밝기 값과 색상 같은 특징들을 사용해 객체와 배경을 더 정밀하게 구분해..
-
적응형 임계값(Adaptive Thresholding)이란컴공지식/컴퓨터비전 2024. 10. 2. 21:47
Local(Adaptive) Thresholding은 이미지의 각 부분에 따라 다른 임계값을 적용하는 방법이다.글로벌 임계값은 이미지 전체에 하나의 임계값을 적용하는데, 이 방법은 각 작은 영역에 맞는 임계값을 따로 정하는 거다.왜냐면 이미지마다 밝기나 명암 차이가 다르니까, 그에 맞춰서 나눠야 제대로 분할할 수 있기 때문이다. 이건 두가지 방법이 있다. ADAPTIVE_THRESH_MEAN_C : 각 픽셀의 주변 영역(blocksize)의 평균을 계산한 다음, 그 값에서 C를 뺀 값이 임계값이 된다.(C는 적응형 임계값을 계산할 때 보정 값 또는 상수를 의미한다. 상황에 따라 다르게 설정될 수 있는데, 이를 통해 결과값을 더 세밀하게 조정할 수 있다.) ADAPTIVE_THRESH_GAUSSIAN_C ..
-
Global Thresholding이란컴공지식/컴퓨터비전 2024. 10. 2. 21:41
Global Thresholding이란 이미지 전체에 하나의 임계값(Threshold)을 정해서 이미지를 나누는 방법이다. 기본 방법은 초기 임계값(T)을 설정한다. 대충 처음에 값 하나 잡는 거다. 그 임계값(T)을 사용해서 이미지를 두 그룹으로 나눈다. 하나는 객체, 나머지는 배경각 그룹의 평균 값(m1, m2)을 계산한다. 새로운 임계값을 T = 0.5 * (m1 + m2)로 계산한다. 즉, 두 그룹의 평균을 더하고 반으로 나누는 거다.마지막으로, 2~4단계를 반복해서 임계값이 더 이상 크게 변하지 않을 때까지 계산한다. 또한 Otsu's method를 이용해 글로벌 쓰레솔딩을 찾을 수 있느데 이는 이미지에서 최적의 임계값을 자동으로 찾아주는 방법이다.이 방법을 통해 클래스들(객체와 배경)이 명확하..
-
splice 메서드개발/자바스크립트 2024. 9. 30. 13:57
splice는 삭제, 추가, 교체 등 여러 작업을 한 번의 호출로 수행할 수 있어 매우 유용한 메서드다. 다음은 splice로 삭제하는 코드다.this.images.splice(index, 1); 이와 같이 splice 함수가 사용됐다고 해보자.이 함수는 images 배열 중 현재 선택된 index의 요소 1개를 삭제해준다.this.images.splice(index, 2);그럼 만약 이렇게 인자를 2로 두면 어떻게 될까?그러면 index와 index+1의 요소가 삭제되게 된다. 다음은 요소 추가하는 코드splice(2, 0, 'grape', 'kiwi')인덱스 2 위치에 새로운 요소들을 추가한다. 0은 제거할 요소가 없음을 나타낸다. 다음은 요소 교체 코드splice(1, 2, 'mango', 'ora..
-
forEach개발/자바스크립트 2024. 9. 30. 13:48
forEach는 자바스크립트의 내장 메서드다.이 메서드는 배열의 각 요소에 대해 주어진 함수를 실행한다. 기본 구문은 다음과 같다.array.forEach(function(currentValue, index, arr), thisValue) currentValue: 현재 처리 중인 배열의 요소index: 현재 처리 중인 요소의 인덱스 (선택적)arr: forEach를 호출한 배열 (선택적)thisValue: 콜백 함수 내에서 this로 사용될 값 (선택적) 이전의 FormData 객체의 예시 코드에서도 나오는데this.uploadedImages.forEach(file => { formData.append('photos', file); }); this.uploadedImages: 순회할 배열 (업로드된..