C++

#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. 오늘은 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..
오뚜깅
'C++' 태그의 글 목록