Programming/OpenCV

#include #include #include #include "opencv342.h" using namespace std; cv::Mat MeanShift_Cluster(cv::Mat); static void floodFillPostprocess(cv::Mat& img, const cv::Scalar& colorDiff = cv::Scalar::all(1)) { CV_Assert(!img.empty()); cv::RNG rng = cv::theRNG(); cv::Mat mask(img.rows + 2, img.cols + 2, CV_8UC1, cv::Scalar::all(0)); ///////////////////////// // 추가한 부분 cv::Mat _mask = mask.clone(), di..
2019.11.25 오늘은 QuadTree Clustering 알고리즘을 설명합니다. QuadTree 알고리즘은 상당히 많은 곳에서 사용되고 있습니다. QuadTree 알고리즘은 여러 장점이 있는데 그 중에서도 Clustering 하는데에 속도가 매우 빠르다는 장점이 유용한 경우가 많습니다. 구두로 간단히 QuadTree Clustering을 설명하자면, 알고리즘 이름에서 알다시피 네 개의 자식을 가지는 tree 구조로 되어있습니다. 이 것을 칼라 이미지에만 적용하여 설명하자면, 입력 이미지를 Root 노드로 하여 이미지를 네 등분하여 왼쪽 위, 오른쪽 위, 왼쪽 아래, 오른쪽 아래 순서로 분할된 영역을 데이터로 가지는 자식을 생성합니다. 이미지의 생성된 자식 노드에 해당하는 영역의 화소값들의 평균을 구..
2019.11.25. 오늘은 K-means Clustering을 간단히 설명하겠습니다. 말 그대로 K-means Clustering 이기 때문에, k개의 군집 중심을 가지면서 clustering을 하는 알고리즘입니다. 따라서 사용자가 사전에 몇 개의 클러스터를 가질지 정의해주게 됩니다. 그래서 k가 하나의 파라미터가 됩니다. k의 초기위치나 초기값은 랜덤하게 정해집니다.(이것또한 사용자가 사전정의를 어떻게 하느냐에 따라 달라집니다.) 데이터 차원에 따라서 데이터 샘플들이 분포하고 있을 때, 모든 데이터 샘플은 초기화된 k중 어느 위치에 가장 가까운지 판별하고 가장 가까운 위치를 자신의 군집으로 소속시킵니다. 모든 샘플에 대해 자기 자신의 군집을 조사하고 나면, 각 k군집중심 별로 데이터 샘플들이 모여있을..
최종 수정 날짜 2019.11.08. 연구실에서 차선 검출 및 도로 검출을 위해서 OpenCV로 작업했던 일이 있었니다. 요즘은 ros에서 PCL을 사용해서 라이다 데이터를 이용하는 작업으로 바꼈지만, 이 전에 도로 영역을 검출하기 위해 했던 공부 했던 Otsu's Algorithm 구현 코드를 올리려고 합니다. Otsu's 알고리즘은 영상 이진화 방법 중에 하나입니다. 영상의 이진화 방법은 여러가지 방법이 있는데, 그 중에서도 이 Otsu's 알고리즘은 정말 많이 사용되곤 합니다. 우선, 영상의 이진화를 하기 위해서는 임계값을 정해줘야합니다. 흑백영상을 예를 들자면, 일반적으로 흑백 영상의 픽셀값의 범위는 0~255를 가지고 있습니다. 여기서 임계값이 200으로 설정하고 이진화를 한다면 픽셀값이 200..
오뚜깅
'Programming/OpenCV' 카테고리의 글 목록