목록OpenCV (17)
관심쟁이 영호
안녕하세요! 관심쟁이 영호입니다! 오늘 공부할 과목은 OpenCV입니다! 오늘은 모폴로지에 대해서 공부를 할 예정이에요! 모폴로지란? 영상 처리에서 모폴로지는 영상의 객체들의 형태를 분석하고 처리하는 기법이에요! 영상의 경계, 골격, 블록 등등의 형태를 표현하는데 필요한 요소를 추출해주는데요! 모폴로지를 통해서 영상 내의 객체를 좀 더 밝게, 크게, 작게, 어둡게 등등 임의의 조작을 하는데 도움을 줍니다. 모폴로지 - 침식 연산 모폴로지를 통해서 객체가 검출되면 해당 객체를 침식하는 연산이에요! 침식 연산을 하게 되면, 크기는 축소! 배경은 확장! 그럼 어떻게 하는가? 1. 가장 먼저 침식 마스크를 설정합니다. 침식 마스크는 아래의 표와 같이 이루어져 있어요! 0 1 0 1 1 1 0 1 0 2. 영상의..
안녕하세요! 관심쟁이 영호입니다. 오늘 공부해볼 과목은 OpenCV입니다! 오늘은 캐니 에지검출, 최대/최소/평균/미디언/가우시안 필터링에 대해서 공부해볼게요! 캐니 에지란? 이전에 봤던 에지 검출방법은 대부분 잡음을 에지로 인식하고 검출하는 경우가 많아요! 그래서 캐니 에지라는 것이 나왔는데요. 캐니 에지는 잡음을 없애면서 에지를 검출하는 방법입니다. 순서를 봅시다! 1. 블러링을 통한 노이즈 제거 2. 화소 기울기의 강도와 방향 검출 3. 비최대치 억제 4. 이력 임계값으로 에지 결정 이해가 잘 안되시죠? 저두 마찬가지에요..ㅋㅋㅋ 이해도 안되고 이해하기도 싫네요.. 어쨋든 이러한 에지를 검출을 하기 위해서는 저 순서대로 하면 된다는 말씀! 예시코드가 너무 길어서.. 이번만 패스할게요.. ㅎㅎ 최댓/..
안녕하세요! 관심쟁이 영호입니다. 오늘 공부해볼 과목은 OpenCV입니다. 이전에 했던 회선 연산, 블러링을 응욯해서! 샤프닝과 에지에 대해서 공부를 할 계획이에요. 샤프닝이란? 블러링은 인접한 화소가 크게 차이가 날 때, 차이를 덜 나게 하여 영상 데이터를 부드럽게 하는 것이었다면 샤프닝은 더더욱 차이가 나게 만들어서 날카로운 느낌이 나도록 도와주는 것입니다. 주로 강조할 때, 경계 부분 명암대비의 증가를 위해 사용됩니다. 이 또한 블러링처럼 마스크 값이 결정되어 있는데요! 마스크 값을 살펴볼게요. -1 -1 -1 -1 9 -1 -1 -1 -1 이렇게 나타낼 수 있어요! 모든 값의 합은 1이 나와야 하고, 중앙값은 1보다 현저히 크게! 다른 값들은 작게 해서 중앙값이 더욱 크게 만들어 주는 것입니다. ..
안녕하세요. 관심쟁이 영호입니다! 오늘은 OpenCV를 공부해볼게요! 오늘은 영역처리 부분에서 회선과 블러링에 대해서 공부를 해볼게요. 영역처리란? 영상처리 작업을 하다보면 공간영역, 주파수 영역에 대한 표현을 자주 접할 수가 있어요! 말 그대로 공간, 주파수를 영역으로 나누어 처리를 하는 것입니다. 공간영역은 영상에서 다루어질 화소공간을 의미합니다! 이것을 더욱 세분화하면 화소점 하나하나의 개념이라기 보다는 화소가 모인 특정 범위의 화소 배열을 의미해요! 그리고 대부분 마스크 또는 윈도우라고 불리는 커널을 이용하여 회선을 수행합니다! 회선이란? 어떠한 마스크값을 영상영역에 전반적으로 곱하여 출력되는 값을 모든 출력화소값에 대해 이동하면서 수행하는 것을 하는 것을 말합니다. 이때, 이 마스크는 커널, 윈..
안녕하세요! 관심쟁이 영호입니다. 오늘은 지난번에 공부한 at함수를 다시 한번 짚어볼 예정이에요! 해당 함수에 대해서 잘 못다루는 느낌이라서 다시 한번 상세히 공부해볼 예정이에요! at함수 이미지 행렬에 있는 값을 접근하는 함수입니다. 이미지는 행렬로 저장되어 있는데, 여기서도 1~@채널로 한 이미지에 여러 행렬이 존재한다고 생각하시면 됩니다! 이때 딱 한 곳에 해당하는 위치를 접근할 때 사용하는 함수가 at() 함수입니다! 먼저, 이 함수를 사용하기 위해서는 접근하려는 위치를 알려주는 것이 가장 먼저겠죠!? 그 위치를 알려주는 방법이 아주 많아요! 방법들을 먼저 살펴보자면, 1. point 객체 2. vec 객체 3. 그냥 int타입의 정수 이렇게 접근을 할 수가 있어요! 그럼 코드로 살펴볼게요. #i..
안녕하세요! 관심쟁이 영호입니다. 오늘은 히스토그램에 관해서 공부를 해볼 예정인데요! 한번 같이 살펴보시죠! 히스토그램이란? 도수 분표를 그래프로 나타낸 것입니다! 저희가 해볼 것은 이미지의 화소 값을 히스토그램으로 나타내 볼 겁니다! 관련 함수를 먼저 보겠습니다! 이름 인수 인수 내용 calcHist(Mat images, int nimages, int** channels, Array mask, Array hist, int dims, int* histSize, float** ranges, bool uniform, bool accumulate) images 원본 영상배열 nimages 원본 영상의 개수 channels 히스토그램 계산에 사용되는 차원 목록 mask 특정영역만 계산하기 위한 마스크 행렬 hi..