분류 전체보기 210

findContours 의 CV_RETR_TREE 옵션과 hierarchy 의 관계

findContours 의 옵션에 CV_RETR_EXTERNAL 을 적용하면 아래와 같이 붉은 선 좌표를 추출한다. 하얀 사각형 안에 들어 있는 검정 사각형의 좌표도 필요로 할 경우가 있다. 필자는 결함 검사 프로그램에서 하얀 부분은 검사 영역, 검은 부분은 비 검사 영역으로 비주얼로 보여줄 필요가 있어서 모든 좌표가 필요했다. 이럴 경우 findContours 의 옵션에 CV_RETR_TREE 를 넣어 추출해 보자.cv::Mat bw = cv::imread(".....");std::vector> contours;std::vector hierarchy;cv::findContours(image_mask_inverse, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPRO..

opencv 2025.06.26

findContours 의 결과 포인트들을 좀 더 심플하게 가공

오른쪽으로 3.5 도 기울어짐 B/W 이미지 이 기울어진 물체의 외곽 좌표들을 아래와 같이 findContours 를 이용하여 추출 할 수 있다.cv::Mat bw = cv::imread("..... ");std::vector> contours;std::vector hierarchy;cv::findContours( bw , contours, hierarchy, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE); 하지만 기울림으로 인하여 인위적인 계단이 생겼기 때문에 이 경우에는 196 포인트의 좌표가 추출 된다. 이 계단 형태의 좌표들을 상쇄하여 심플한 직선 좌표를 얻고자 한다면 approxPolyDP 를 이용하여 contours 결과값을 가공하자.std::vector> appr..

opencv 2025.06.25

google notebooklm 소개

LLM 을 이용하여 개인, 회사의 데이터를 기반으로 질문에 대해 답변을 이끌어 내는 RAG(Retrieval Augmented Generation) 이 등장했다. 데이터는 일정 사이즈로 분리가 되어 임베딩(분리된 문장을 일정 사이즈의 Dimension의 값) 되어야 하고 임베딩 간의 유의도 측정이 가능하도록 임베딩 벡터 db에 저장이 되어야 한다.위의 시스템을 구축하기 위해서는 시간, 노력, 비용(임베딩, LLM사용)이 필요하게 된다. 위의 시스템을 무료로 사용가능한 google notebooklm을 소개하고자 한다.https://notebooklm.google.com/ 1. 위 사이트에 구글 계정으로 로그인2. Create new notebook 을 클릭하여 새로운 노트북을 생성 노트북은 사용 용..

data science/python 2025.06.09

SVM(Support Vector Machines) Classifier

별과 삼각형을 분류하기 위해서 가장 넓은 하늘색 공간(maximum marginal hyperplane(MMH))을 찾는 알고리즘이다. 이 공간을 계산하기 위해 인접한 Support Vectors 라 불리는 데이터 포인트를 이용하게 된다. from sklearn.model_selection import train_test_splitfrom sklearn.preprocessing import StandardScalerfrom sklearn import svmfrom sklearn.metrics import classification_report, confusion_matriximport pandas as pdimport seaborn as snsiris = sns.load_dataset('iris')X_i..

K-Neighbors Classifier

K-Neighbors Classifier란 분류하고자 하는 샘플(Pt)과 가장 가까운 K개의 이웃들 중 가장 많이 속해있는 클래스를 선택하는 분류기이다.만약 k=3으로 하면 별은 보라색원에 속하는 것이고(보라색원 2 > 노란색원 1)만약 k=6으로 하면 별은 노란색원에 속하게 된다   (보라색원 2   아래는 IRIS 데이터셋의 샘플from sklearn.model_selection import train_test_splitfrom sklearn.preprocessing import StandardScalerfrom sklearn.neighbors import KNeighborsClassifierfrom sklearn.metrics import classification_report, confusion_..