내맘대로 공부기록.

분류 전체보기 50

[이미지 분류] K-Means 클러스터 알고리즘 사용해보기.

K-Means 이론과 고찰 : 이미지의 픽셀 분포를 수학적 계산하여 세그멘테이션 분류를 할 수 있다. 그야말로 수학적인 알고리즘으로 픽셀을 분류한다.(머신러닝의 훈련과정은 없다. 다만 범주로 나누고자 하면, 비지도 학습 부분이라고 한다.) 클러스터 그룹을 나누는 과정은 거리 기반의 그룹 간 비유사도 (dissimilarity)와 같은 비용 함수 (cost function)을 최소화하는 방식으로 이루어진다(출처 : 위키피디아) (위키피디아에 자세한 설명있음) 한계점으로, 각 클러스터의 초기 중심값 및 유저가 설정하는 클러스터 개수에 의존성이 높으며 클러스터를 잘못 분류할 수 있는 가능성이 다소 높다. 하지만, 이미지를 분류하는 알고리즘 중에 가장 간단하고 빠르게 구현해볼 수 있는 장점이 있어서 이미지 세그..

[ STUDY ] 2022.04.23

[ C++ ] Binary search 구현해보기.

전제조건 🤔 검색하고자 하는 대상(어레이 형태의 데이터 타입)이 오름 또는 내림차순의 정렬된 상태여야 한다. 알고리즘 개념. 🙏🔗 • 노마드코더 유튜브 : 알고리즘(바이너리 서치) • 위키피디아 : https://en.wikipedia.org/wiki/Binary_search_algorithm Binary search algorithm - Wikipedia From Wikipedia, the free encyclopedia Jump to navigation Jump to search This article is about searching a finite sorted array. For searching continuous function values, see bisection method. Search..

[ STUDY ] 2022.02.23

C++ vector 타입과 조금 다른 C# List 타입 변수의 사용.

두 변수 타입 모두 어레이 형태로 사용할 수 있습니다. 어레이의 요소 타입을 괄호() 안에 선언 후 사용하는 부분은 같습니다. C# C++ 형태 List() vector Clear 메서드 사용의 차이점. 선언한 List(C#), vector(C++) 변수의 요소를 모두 삭제하기 위해 Clear 메서드를 사용할 수 있습니다. 두 언어에서 메서드를 콜 하는 방법 또한 같습니다. /* arrVar : 각 언어에서 사용하는 List, vector 타입의 변수명 */ // C# arrVar.Clear(); // C++ ; 소문자 c arrVar.clear() 다른 점이라고 할까요 ? C++ 언어와 비교해서 작업했던 썰을 적어봅니다. C++에서 이미지 전처리 로직을 짜고, C# 윈도우 프로그램을 작성하기 위해 코드..

[ STUDY ] 2022.02.13

[ emguCV | C# ] C# UI. 이미지 불러오기. pictureBox, ImageBox 비교.

윈도우 폼 애플리케이션에 opencv 라이브러리를 사용하기 위해 emgucv를 사용해 봅니다. native opencv 코드를 감싸주는 Wrapper 개념이며, .NET 개발 환경에서 활용할 수 있는 크로스 플랫폼입니다. [ ✅ emguCV 공식 문서 ] Emgu CV: OpenCV in .NET (C#, VB, C++ and more) From Emgu CV: OpenCV in .NET (C#, VB, C++ and more) Jump to navigation Jump to search Emgu CV is a cross platform .Net wrapper to the OpenCV image processing library. Allowing OpenCV functions to be called fr..

[ C# ] 2022.01.23

[ openCV | C++ ] 비주얼 스튜디오(Visual Studio) openCV 환경 설정 하기

※이 글은 다음 유튜브 영상을 참고해서 정리한 내용입니다. 아래 링크를 따라 하셔도 좋습니다. easycoding님의 #1: Visual Studio 2019 Project 설정 및 예제코드 사용방법 윈도우 OS에서 적용한 설정 방법을 정리했습니다. 맥 OS에서 VSC, XCODE를 사용하는 경우는 아래 링크 글을 참고하세요. [ openCV | C++ ] 비주얼 스튜디오 코드에서 openCV 환경 설정 하는 방법(맥 버전) 1. 비주얼 스튜디오 코드 설치 2. C++ 컴파일 환경 구성(일반) 🔗 tasks.json 파일 3. C++ 디버그 환경구성(일반) 🔗 launch.json 파일 4. opencv 패키지 설치 5. opencv 환경 설정 🔗 c_cpp_properties.json 파일.. fwan..

[ C++ ] 2022.01.10

[ 2021년 회고 ] 횡설수설.

새로운 직무를 시작. (장비병 도져서 키보드만 새로 삼. 손에 안 맞아, 너무 손목이 아프고 오타만 남. 사지 말았어야 돼.) 21년도는 본격적으로 새로운 직무를 시작하는 해이기도 합니다. 사실 그 전인 20년도부터 개발업무를 하고 싶어서 여기저기 직원분들과 소통하고, 개발부서로 이동이 가능한지 상담을 했었습니다. 마침 한 시스템 담당자가 다른 부서로 이동하게 되었고, 티오가 발생해서 적극적으로 어필한 결과, 저는 개발부서로 이동을 할 수 있게 되었습니다. 회사 특성상(?) IT 기반의 회사가 아니기 때문에, 특정 시스템을 개발하는 개발자는 사수, 부사수 이 정도밖에 없는 구조입니다. 그래서 개발자 구성원은 사수, 부사수 1명씩 있고 프론트, 백엔드, DB 등 모두 대응해야 되는 구조더라고요. 게다가 위..

[ 일상 ] 2022.01.03

[ openCV | C++ ] ( 6 / 6 ) 차선검출. 데이터를 시각화 하기.

차선 검출 데이터를 시각화 📺 ⚙️ 기본 설명 ⚙️ 왜곡 제거(카메라 보정) 👍 Perspective Transform(원본 이미지 ⏩ 2D) Color Filtering(HLS, LAB color space) 픽셀 값 정규화(feat. 최댓값) 및 이미지 픽셀(HLS 1개, LAB 1개) 합치기. Window Search Show Detected Lines and Info. 개념 🧐 1~5번에서 이미지 속에 있는 차선을 찾아내기 위해 전처리 작업을 진행했습니다. 작업을 통해서 획득한 데이터를, 이미지 프레임에 얹어 주겠습니다. 사실 이 작업은 우리가 보고 있는 영상 또는 카메라 입력 데이터에 대해서 전처리된 데이터를 뿌려주는 개념으로, "이미지 전처리"라는 타이틀을 가져가야 하는 게 맞는지 고민을 했었..

[ C++ ] 2021.09.19

[ openCV | C++ ] ( 5 / 6 ) 차선검출. 이미지 전 처리. Window Search 작업.

차선 검출을 위한 이미지 전 처리해보기 🛣 ⚙️ 기본 설명 ⚙️ 왜곡 제거(카메라 보정) 👍 Perspective Transform(원본 이미지 ⏩ 2D) Color Filtering(HLS, LAB color space) 픽셀 값 정규화(feat. 최댓값) 및 이미지 픽셀(HLS 1개, LAB 1개) 합치기. Window Search Show Detected Lines and Info. 개념 🧐 Window Search 작업부터는 이미지의 픽셀을 계산하고 정보를 획득하는 모듈로 생각하고 진행했습니다. 먼저, Window Search라는 이름과 같이 창(Window) 또는 박스 형태의 직사각형의 영역을 설정해서 차선의 필셀 위치 정보를 획득할 수 있습니다. ( 여기까지가 온전한 Window Search ..

[ C++ ] 2021.09.05

[ openCV | C++ ] ( 4 / 6 ) 차선검출. 이미지 전 처리. 정규화 및 이미지 픽셀(HLS 1개, LAB 1개) 합치기 작업.

차선 검출을 위한 이미지 전 처리해보기 🛣 ⚙️ 기본 설명 ⚙️ 왜곡 제거(카메라 보정) 👍 Perspective Transform(원본 이미지 ⏩ 2D) Color Filtering(HLS, LAB color space) 픽셀 값 정규화(feat. 최댓값) 및 이미지 픽셀(HLS 1개, LAB 1개) 합치기. Window Search Show Detected Lines and Info. 개념 🧐 3. Color Filtering(HLS, LAB color space)에서 필터링 한 각 이미지는 원(One) 채널 픽셀 데이터를 가지고 있으며, 이 이미지 요소가 소스가 됩니다. 소스 이미지의 픽셀 분포를 정리하기 위해서, 해당 이미지의 픽셀 최댓값을 이용하여 정규화해줍니다. 그리고 thresholding ..

[ C++ ] 2021.08.28

[ openCV | C++ ] ( 3 / 6 ) 차선검출. 이미지 전 처리. Color Filtering(HLS, LAB color space)

차선 검출을 위한 이미지 전 처리해보기 🛣 ⚙️ 기본 설명 ⚙️ 왜곡 제거(카메라 보정) 👍 Perspective Transform(원본 이미지 ⏩ 2D) Color Filtering(HLS, LAB color space) 픽셀 값 정규화(feat. 최대값) 및 이미지 픽셀(HLS 1개, LAB 1개) 합치기. Window Search Show Detected Lines and Info. 개념 🧐 차선을 잡아주기 위해서, 원본 이미지의 색 채널을 조작합니다. 우리가 통상 보고 있는 화면의 색은 BGR채널(Blue, Green, Red)의 조합으로 표현할 수 있습니다. 고맙게도 opencv 에서는 BGR 채널을 변환시켜서 빛의 요소 및 색의 명암, 채도, 포화도 등등의 섬세한 요소로 분리하여 표현할 수 있..

[ C++ ] 2021.08.22
반응형