내맘대로 공부기록.

opencv 24

[opencvSharp] setMouseCallback 함수 사용 방법

작업환경 - C# 환경에서 데스크탑 윈도우 프로그램을 작성하는 경우 - opencvSharp 라이브러리를 참조 - OS : Windows 11 Pro 개념 이미지에 대해서 유저의 조작을 반영하고 싶을 경우, 마우스 핸들러의 개념으로 사용할 수 있습니다. 마우스의 좌/우 버튼 및 휠 버튼 클릭에 대해서 이벤트 정보를 가져올 수 있으며, 발생한 이벤트에 대해서 하고 싶은 작업들을 추가할 수 있습니다. 웹 기반의 프로그래밍에도 이벤트를 핸들링할 수 있는 구조가 있는 걸로 알고 있는데, 같은 개념인 것 같습니다. 마우스 이벤트 리스트 1. MouseEventTypes 2. MouseEventFlags 콜백 함수를 적용하는 개념 - 필요 조건 : 이미지 소스를 표시할 윈도우 객체가 필요 - 이미지를 표시하는 윈도..

[ C# ] 2022.04.30

[ 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

[ 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

[ openCV | C++ ] ( 2 / 6 ) 차선검출. 이미지 전 처리. Perspective Transform (getPerspectiveTransform, warpPerspective 함수 사용법)

차선 검출을 위한 이미지 전 처리해보기 🛣 ⚙️ 기본 설명 ⚙️ 왜곡 제거(카메라 보정) 👍 Perspective Transform(원본 이미지 ⏩ 2D) Color Filtering(HLS, LAB color space) 픽셀 값 정규화(feat. 최대값) 및 이미지 픽셀(HLS 1개, LAB 1개) 합치기. Window Search Show Detected Lines and Info. 개념 🧐 인풋으로 사용되는 이미지 형태(또는 영상 데이터)는 보통 기울어져 있거나, 카메라의 위치가 모두 다르기 때문에 차선검출에 사용하기 위한 소스로써 적합하지 않습니다. 그렇기 때문에 날 것(Raw)의 이미지 소스를 용도에 맞게 위치, 사이즈를 변환시키는 등 전처리 작업이 필요할 것 같습니다. 우리 주변에서 찾아볼 ..

[ C++ ] 2021.08.13

[ openCV | C++ ] ( 1 / 6 ) 차선검출. 이미지 전 처리. 왜곡 제거(카메라 보정)

차선 검출을 위한 이미지 전 처리해보기 🛣 ⚙️ 기본 설명 ⚙️ 왜곡 제거(카메라 보정)👍 Perspective Transform(원본 이미지 ⏩ 2D) Color Filtering(HLS, LAB color space) 픽셀 값 정규화(feat. 최대값) 및 이미지 픽셀(HLS 1개, LAB 1개) 합치기. Window Search Show Detected Lines and Info. 최초 카메라로 입력되는 이미지 프레임에 대해서, 왜곡현상을 제거합니다. 화면에 출력되는 이미지는 2D 형태이지만, 이 이미지는 실제 세계의 3차원의 형상을 2차원 데이터로 변환시킨 후 디스플레이에 투영시킵니다. 우리는 그 변환된 이미지를 보고 있는 거죠. 이 과정에서 물리적으로 사용되는 카메라의 렌즈 및 그 외 카메라의 ..

[ C++ ] 2021.06.02

[ openCV | C++ ] 차선 검출 이미지 전처리 작업. 왜곡 현상 보정 하는 방법.

undistort 함수 사용 리뷰 🚀 서론(참고한 글) Camera Calibration 체스보드를 이용하는 이유 보정 작업 결과(with 와이드 렌즈) CODE 이미지 프레임에 반영되어 있는 왜곡현상을 없애주기 위한 작업입니다. 이런 왜곡현상은 특정 카메라의 고유특성에 의해서 발생되는데, opencv 함수를 이용해서 보정할 수 있습니다. opencv에서는 체스보드 이미지를 활용하는 함수가 있으며, 차선 검출을 구현하기 위한 전처리 작업으로서 많이 사용되는 것 같습니다. 이 글은 아래 글 들을 참고해서 학습하며 작성하였습니다. 왜곡 보정 작업 외에도 차선 검출 파이프 라인의 전반적인 내용들이 잘 설명되어 있으니 참고하면 좋을 것 같습니다. 1. Calibrating & Undistorting with O..

[ C++ ] 2021.05.08
반응형