swengineer의 등록된 링크

 swengineer로 등록된 티스토리 포스트 수는 76건입니다.

[OpenCV][Python]기본 자료형 자료구조 슬라이스 함수 모듈 패키지 임포트 slice function method module package import [내부링크]

지난 시간에는 Python을 사용하기 위한 개발 환경, 즉 파이참을 설치하고 프로젝트를 만들어보는 방법에 대해 알아봤습니다. https://blog.naver.com/dorergiverny/223201457300 [OpenCV][Python][강의] 1. 개발 환경 설치 - 파이참 PyCharm community 버전 패키지 설치 install package 프로젝 대학교 강의를 진행하면서 제가 포스팅하는 블로그에 대한 불편함을 깨달았습니다. 저는 제가 공부하면서 ... blog.naver.com 물론 IDE (Integrated Development Environment) 로는 Visual Studio Code도 많이 사용됩니다. https://blog.naver.com/dorergiverny/2231..

[OpenCV][Python] 개발 환경 설치 - 파이참 PyCharm community 버전 패키지 설치 install package 프로젝트 시작 IDE [내부링크]

대학교 강의를 진행하면서 제가 포스팅하는 블로그에 대한 불편함을 깨달았습니다. 저는 제가 공부하면서 그 때 생각나는대로 정리를 하고 있었는데, 기초부터 체계적으로 연재를 해야하겠다는 생각이 들었습니다. 참고 교재는 OpenCV-Python 으로 배우는 영상 처리 및 응용 (생능출판) 입니다. 기초부터 정리가 잘 되어 있어서 선정하였으며, 모든 내용을 동일하게 진행하지는 않을 것 입니다. 하지만 많은 참고를 하면서 정리할 예정입니다. 오늘은 OpenCV-Python 강의 첫 시간으로 파이썬의 개발환경(파이참) 설치에 대해 알아보겠습니다. (1) 파이참 다운로드 파이참은 젯브레인즈(JetBrains)사의 IntelliJ IDEA에 기반을 두고 개발된 프로그램으로 파이썬 언어를 위한 거의 모든 기능을 갖춘 통..

[OpenCV][파이썬] 도형 그리기 총정리 - 브레젠험 rectangle arrowedLine ellipse2Poly clipLine fillConvexPoly putText [내부링크]

지난 시간에 영상을 window에 표시하고 창의 속성들을 설정하는 방법에 대해 알아봤습니다. https://blog.naver.com/dorergiverny/223174195626 [OpenCV][파이썬] 영상 처리 기본 - image 출력 window 창 함수 display 이미지 show mouse 이벤트 그림 그리 지난 시간에 우리는 OpenCV의 기초로 영상을 읽어보고 imshow 하는 것까지 해 보았습니다. https://m.bl... blog.naver.com 이번에는 영상에 도형을 그리고 글씨를 쓰는 방법에 대해 알아보겠습니다. 도형을 그리는 것은 영상에서 물체나 코너를 검출했을 때 결과를 표시하여 시각적으로 확인할 때 많이 사용하기도 합니다. 그리기 함수는 위치, 두께 ,색상, 선 타입, ..

[OpenCV][C++] 기하학적 변환 (Geometric Transform) 총정리 - warpAffine, warpPerspective transformation [내부링크]

지난 번에 영상 회전에 관해 알아보면서 warpAffine() 함수 사용법에 대해 간단히 알아 보았습니다. https://blog.naver.com/dorergiverny/223103254105 [OpenCV][C++] 영상 회전(image rotation)하는 방법 - getRotationMatrix2D(), warpAffine() 이번에는 영상을 특정 각도로 회전시키는 방법에 대해 알아보겠습니다. 2D 회전 행렬은 아래와 같습니다. ... blog.naver.com 이번에는 좀 더 상세히 알아보도록 하겠습니다. 기하학적 변환(Geometric Transformation)이란? 기하학적 변환은 영상을 사용자가 원하는대로 확대, 축소, 위치 변경, 회전, 왜곡 등을 하는 이미지 변환하는 것을 의미합니다...

[OpenCV][C++] 템플릿 매칭 (template matching) 총정리(2) - 영상 회전 rotated matchTemplate matchShape 모양 형태 정합 찾기 [내부링크]

지난번에 템플릿 매칭의 기본에 대해 알아보았습니다. https://blog.naver.com/dorergiverny/223108149822 [OpenCV][C++] 템플릿 매칭 (template matching) 총정리(1) - matchTemplate minMaxLoc SQDIFF CCORR CCOEFF 이번에는 템플릿 매칭에 대해 알아보겠습니다. 템플릿 매칭(template matching)은 원본 영상에서 템플릿 영... blog.naver.com 이번에는 그 것을 좀 더 응용하여 좀 더 멋진 소스를 만들어 보겠습니다. 템플릿 매칭 함수 만들기 템플릿 매칭 방법에 따라 SQDIFF는 최소값을 갖는 위치가 매칭 위치이고, 나머지 CCORR 또는 CCOEFF 는 최대값을 갖는 위치가 매칭 위치입니다. ..

[OpenCV][C++] 템플릿 매칭 (template matching) 총정리(1) - matchTemplate minMaxLoc SQDIFF CCORR CCOEFF [내부링크]

지난 시간에는 영상 분할하는 방법 중 grabcut에 대해 알아봤습니다. https://blog.naver.com/dorergiverny/223108058366 [OpenCV][C++] 영상 분할 ( image segmentation ) 총정리(3) - GrabCut graphcut setmousecallback 지난번에는 워터쉐드 (watershed) 알고리즘에 대해 알아봤습니다. https://m.blog.naver.com/dorergiverny/... blog.naver.com 이번에는 템플릿 매칭에 대해 알아보겠습니다. 템플릿 매칭(template matching)은 원본 영상에서 템플릿 영상(template image)이라고 불리우는 작은 크기의 부분 영상과 동일한 또는 가장 유사한 영역의 위치..

[JK 농원] 동탄 한우 소고기 오마카세 맛집 우블랑 - 코스요리 동탄역 롯데백화점 근처 파스타 조용한 기념일 데이트 트러플 샌드 안심 마이바르 엘리스빌 참돔 캐비어 [내부링크]

얼마전 회사 회식으로 1++ 등급 소고기 제대로 즐길 수 있는 오마카세 맛집 우블랑 에 다녀왔습니다. 우블랑은 동탄역, 롯데백화점과 도보 5분 거리에 있는 더몰트하우스 옆에 위치하고 있습니다. 주소: 경기 화성시 동탄대로 469-12 1층 1061, 1062호 전화번호: 0507-1339-2920 영업시간: 매일 12:00 ~ 22:00, 15:00~17:00 브레이크타임 주차: 엘리스빌 상가 주차장 주차팁: Gate1 근처에 하시면 바로 올라오실 수 있습니다. 엘리베이터를 타고 1층으로 올라오시면 아래와 같은 광경이 펼쳐지는데, 빨간 라인처럼 밖으로 나갔다가 정문으로 들어가시는 경우가 있고, 초록색 라인처럼 후문으로 바로 들어가실 수 있습니다. 정문 모습 입니다. 정문으로 들어서면 소고기에 잘 어울리는..

[OpenCV][C++] 영상 분할 ( image segmentation ) 총정리(3) - GrabCut graphcut setmousecallback 그랩컷 [내부링크]

지난번에는 워터쉐드 (watershed) 알고리즘에 대해 알아봤습니다. https://blog.naver.com/dorergiverny/223099559423 [OpenCV][C++] 영상 분할 image segmentation 총정리 (1) - 워터쉐드 watershed 알고리즘 rainfall inpaint 워터셰드 지난 시간에 우리는 영상 일부분이 훼손된 영상이나 일부분을 지우는 inpaint 기술에 대해 알아봤습니다. h... blog.naver.com 이번에는 GrabCut 알고리즘에 대해 간단히 알아보도록 하겠습니다. GrabCut 알고리즘이란? GrabCut 알고리즘은 영상에서 배경과 전경을 구분하여 전경을 추출하는 알고리즘으로 그래프 컷(graph cut) 기반의 영역 분할 알고리즘 입니다..

[OpenCV][파이썬] 영상 처리 기초 - image 읽기 쓰기 저장 imread VSCode 화소 접근 imshow numpy 리스트 list 튜플 tuple [내부링크]

제 블로그를 보시면 알겠지만, 저는 c++ 기반의 프로그램을 계속 해 왔습니다. 왜냐하면 회사에서는 파이썬 보다는 c++을 많이 사용하기 때문입니다. 그래도 교육용이나 실시간성이 많이 필요하지 않은 분야에는 파이썬이 많이 적용되고 있기 때문에 저도 파이썬을 이용하여 OpenCV를 한번 강의를 연재해 보려고 합니다. 지난 시간에 우리는 Visual Studio Code를 설치하고 OpenCV를 연동해보는 것까지 해 봤습니다. https://blog.naver.com/dorergiverny/223169168476 [OpenCV][파이썬] VSCode 설치 및 anaconda 연동하기 - Visual Studio Code 세팅 IDE 아나콘다 python 최신버전 환 지난번에는 anaconda를 설치하고 Ju..

[JK 농원] 서울 서초구 반포 양자강 - 중국집 자장면 딤섬 중식 전문 레스토랑 신반포 뉴타운 빌딩 전통 맛집 잠원 반포역 코스요리 가족모임 조용한 곳 분위기 [내부링크]

이번에는 잠원동, 반포 쪽에 계신 분이라면 모두가 아는 중식 전문 레스토랑 양자강 을 소개합니다. 고급스럽고 조용한 분위기를 찾으시면 바로~ 여기로 오세요~ 주소: 서울 서초구 신반포로 257 뉴타운빌딩 지하1층 전화번호: 02-595-2874 영업시간: 매일 11:00 ~ 21:30 주차: 뉴타운 빌딩 주차장 이용(실외) 일단 반포역 6번 출구로 나온 후 바로 보이는 뉴타운 빌딩(스타벅스 있는 건물)으로 오시면, 롯데슈퍼 입구가 있습니다. 1층에 베스킨라빈스도 있어요. 아이들과 가면 코스죠. 지하에서 점심 먹고 롯데슈퍼에서 장보고 나올 때 베스킨라빈스에서 아이스크림 사서.. 집으로 오면 됩니다. 입구로 들어서면 지하로 내려가는 길이 있는데, 반포식스, 함흥면옥, 꽃집이 있어요. 반포 양자강에서 요즘 밀..

[OpenCV][C++] 영상 회전(image rotation)하는 방법 - getRotationMatrix2D(), warpAffine() [내부링크]

이번에는 영상을 특정 각도로 회전시키는 방법에 대해 알아보겠습니다. 2D 회전 행렬은 아래와 같습니다. OpenCV에서는 회전 중심을 선택하고 영상의 크기를 조절할 수 있는 함수를 제공합니다. OpenCV에서 제공하는 함수의 수식은 아래와 같습니다. Cx와 Cy는 영상 회전 중심 좌표를 의미하며, s는 scale 값을 의미합니다. 위의 행렬을 계산해주는 함수가 바로 getRotationMatrix2D() 함수 입니다. 함수의 원형은 아래와 같습니다. center 회전 중심 좌표 angle 회전 각도, degree 단위, (양수: 반시계 방향, 음수: 시계 방향) scale 영상 스케일 조정 값 반환값 회전 행렬 이 행렬을 이용해서 영상을 회전시키기 위해서는 warpAffine() 함수를 사용합니다..

[OpenCV][C++] 영상 분할 ( image segmentation ) 총정리(3) - GrabCut graphcut setmousecallback [내부링크]

지난번에는 워터쉐드 (watershed) 알고리즘에 대해 알아봤습니다. https://blog.naver.com/dorergiverny/223099559423 [OpenCV][C++] 영상 분할 image segmentation 총정리 (1) - 워터쉐드 watershed 알고리즘 rainfall inpaint 워터셰드 이번에는 영상 분할의 기본적인 방법인 워터쉐드 알고리즘에 대해 간단히 알아 본 후 영상 분할 실습을 해 ... blog.naver.com 이번에는 GrabCut 알고리즘에 대해 간단히 알아보도록 하겠습니다. Grabcut 알고리즘이란? GrabCut 알고리즘은 영상에서 배경과 전경을 구분하여 전경을 추출하는 알고리즘으로 그래프 컷(graph cut) 기반의 영역 분할 알고리즘 입니다. 그..

[OpenCV][C++] 영상 분할 (image segmentation) 총정리(2) - 워터쉐드 (watershed) 알고리즘, cv::distanceTransform [내부링크]

이전에는 마우스 이벤트를 활용하여 markers 영상을 만들고 이를 기반으로 watershed 알고리즘을 수행하는 방법을 알아보았습니다. https://blog.naver.com/dorergiverny/223099559423 [OpenCV][C++] 영상 분할 image segmentation 총정리 (1) - 워터쉐드 watershed 알고리즘 rainfall inpaint 워터셰드 이번에는 영상 분할의 기본적인 방법인 워터쉐드 알고리즘에 대해 간단히 알아 본 후 영상 분할 실습을 해 ... blog.naver.com (1) Watershed Segmentation watershed segmentation을 수행하는 방법을 알아보겠습니다. 이번에는 거리변환(distance Transform) 함수에 대..

[OpenCV][C++] 영상 분할(image segmentation) 총정리 (1) - 워터쉐드 (watershed) 알고리즘 rainfall [내부링크]

이번에는 영상 분할의 기본적인 방법인 워터쉐드 알고리즘에 대해 간단히 알아 본 후 영상 분할 실습을 해 보도록 하겠습니다. watershed 알고리즘 watershed 알고리즘은 영역 기반 분할(region-based segmentation) 의 한 방법으로 영상의 밝기 값의 유사성에 근거하여 영역을 분할하는 방법입니다. 다시 말하면, 영상의 픽셀 값을 높이로 생각하고 영상을 2차원 지형으로 가정할 때 물을 채우고 물 웅덩이로 분할된 영역으로 분할하는 알고리즘 입니다. watershed는 크게 Rainfall, Flooding 의 두가지 방법으로 나눌 수 있습니다. Rainfall: 지형의 고도가 높은 지점에서 물방울을 떨어뜨려 고도가 낮은 물 웅덩이를 만드는 방법 Flooding: 물을 고도가 낮은 골..

[OpenCV][C++] 훼손된 영상 복원하기 - cv::inpaint() 사진속 그림 지우기 제거 image restore 회복 되돌리기 [내부링크]

이번에는 좀 재미있는 함수를 알아보려고 합니다. 훼손된 영상을 주변 픽셀 정보를 이용하여 채워넣는 방법입니다. 이 함수를 알아보기 위해 이전에 알아보았던 마우스 이벤트를 사용해볼께요. https://m.blog.naver.com/dorergiverny/223084092098 [OpenCV][C++] 마우스 이벤트 처리 총정리 - onMouse setMouseCallback EVENT_MOUSEMOVE LBUTTONDOWN 이전에는 윈도우 생성 방법과 키보드 입력을 받아 이벤트를 처리하는 방법에 대해 알아보았습니다. https:/... blog.naver.com inpaint()의 원형은 아래와 같습니다. src 입력 영상 inpaintMask inpaint 할 마스크 영상 dst 출력 영상 inpaint..

[소프트웨어] SW 개발 방법론(2) - 폭포수 모델 프로세스 나선형 통합 애자일 agile waterfall model process spiral unified 선언문 협업 UP [내부링크]

지난 시간에 소프트웨어 개발 방법론에 대해 기초를 알아봤습니다. https://m.blog.naver.com/dorergiverny/223030851029 소프트웨어 개발 방법론(1) - 프로그래밍 차이 구조적 절차적 객체지향 모호성 명사 동사 모듈화 우리는 지난 시간에 기술 부채 techincal debts 에 대해 알아봤습니다. https://blog.naver.com/dorergiver... blog.naver.com 오늘은 소프트웨어 개발 프로세스에 대해 알아 보겠습니다. 1. 소프트웨어 개발 프로세스란? 2. 폭포수 모델 3. 나선형 모델 4. 통합 모델 5. 애자일 모델 소프트웨어 개발 프로세스란? 소프트웨어 개발 프로세스란 무엇일까요? 소프트웨어를 개발할 때 해야 하는 일의 순서를 정의하는 ..

[소프트웨어] SW 개발 방법론(1) - 프로그래밍 차이 구조적 절차적 객체지향 모호성 명사 동사 모듈화 상속 추상화 프로그래머 [내부링크]

우리는 지난 시간에 기술 부채 techincal debts 에 대해 알아봤습니다. https://blog.naver.com/dorergiverny/223030520258 [C/C++] Technical Debt 란? 기술 부채 debts 정의 발생 원인 필요성 SW 개발 소프트웨어 이율이 높아지는 요즘 같은 시대에 빚이란 걸 생각하기도 싫다. 어려운 길과 쉬운 길이 있다면 누구나 쉬운... blog.naver.com 오늘 알아볼 내용은 아래와 같습니다. 1. 소프트 웨어와 프로그래밍의 차이 2. 소프트웨어는 언어다? 3. 구조적(절차적) 개발 방법론 4. 객체지향 개발 방법론 소프트웨어 vs. 프로그래밍 소프트웨어 개발 방법론을 논하기에 앞서, 소프트웨어가 무엇인가? 생각해 봅시다. 예를 들어, "1부터..

[JK 농원] 평택 오산 수제버거 맛집 로키즈 버거 rockys burger 송탄 미군기지 공군 국제중앙시장 이태원 경기 미국 감성 데이트 주차 정보 신장동 [내부링크]

오늘 소개할 맛집은 바로 바로 오산 미국 공군 기지 앞에 있는 수제 버거 맛집~ 촉촉한 패티가 일품인 송탄 미군 부대 수제버거 맛집~!! 로키스 버거 rockys burger 입니다. 주소: 경기도 평택시 쇼핑로 8 (신장동 302-132) 전화번호: 0507-1345-4502 (전화하실 필요는 없어요 외국인이 받을 수도 ...) 주차: 신장 쇼핑몰 제3 공영 주차장 이용 택시: 미군 공군 기지 정문 앞 또는 송탄 관광 특구 영업시간: 매일 11:30~21:00 아래 사진에서 파란색 주차장이 신장쇼핑몰 제3공영 주차장입니다. 초록색 네모칸이 미군 공군 기지 정문입니다. 가격이 비싸지 않아요. 어설프게 도로에 주차하셨다가 딱지가 날아오는 경우가 많으니 그냥 마음 편하게 주차장에 주차하시면 됩니다. 1일 최..

[C++] string to char* 와 char* to string 문자열 변환 총정리 const c_str strcpy begin vector [내부링크]

이전에 std::string 클래스에 대해 총정리를 해 보았습니다. https://m.blog.naver.com/dorergiverny/223046924132 [C++] std::string 클래스 ( 문자열 ) 사용법 완벽 총정리 - string 확장 함수 erase find append stoi to_string 이번엔 문자열(string)을 다루는 클래스인 string 클래스를 파헤쳐봐요. std::string 의 모든 것을 정리해... blog.naver.com 이번에는 string 과 char* 간 변환 방법에 대한 총정리를 해 보겠습니다. 이게 어려운 내용이 아니지만 가끔 찾아보고 싶을 때가 있는 변환이에요. 그래서 정리해 드립니다. string 을 char*로 변환 1. c_str() 사용 ..

[C++] std::string 클래스 ( 문자열 ) 사용법 완벽 총정리 - string 확장 함수 erase find append stoi to_string [내부링크]

이번엔 문자열(string)을 다루는 클래스인 string 클래스를 파헤쳐 보겠습니다. 이번에는 std::string 의 모든 것을 정리해봤으니 끝까지 읽어 주세요. string 입/출력 방법 이전에 C에서는 char* 나 char[]의 형태로 문자열을 다뤘다면, c++에서는 문자열을 하나의 변수 type으로 간주하여 다룰 수 있게 합니다. char*나 char[]와 다르게 문자열 끝에 '\0'이 포함되지 않아 문자열의 길이를 동적으로 변경이 가능합니다. 지난번에 말씀드린 것과 같이 cin을 통해 string을 입력받을 수 있었습니다. #include #include int main() { std::string str; std::cout str; std::cout

[OpenCV][파이썬] VSCode 설치 및 anaconda 연동하기 - Visual Studio Code 세팅 IDE 아나콘다 python 최신버전 환경설정 버전확인 [내부링크]

지난번에는 anaconda를 설치하고 Jupyter Notebook을 사용하는 방법에 대해 알아봤습니다. https://m.blog.naver.com/dorergiverny/223125248536 [데이터 분석][Python] windows 10에 아나콘다(anaconda) 파이썬 설치 및 Jupyter 노트북 사용법 이번에는 아나콘다 설치 방법 및 Jupyter 노트북 사용법에 대해 알아보도록 하겠습니다. 아나콘다(Anacon... blog.naver.com 아무래도 데이터 분석을 위해서는 주피터 노트북을 활용하는 것이 한줄마다 결과를 바로 볼 수 있어서 편리했습니다. 하지만 영상처리, Computer Vision을 하기 위해서는 Jupyter Notebook 보다는 일반적인 IDE(Integrated..

[OpenCV][C++] 영상 가장자리(Border) 픽셀 확장 방법 총정리 - 필터링 적용 copyMakeBorder [내부링크]

지난 시간에 평균 필터(Average Filter)에 대해 알아보면서 다루지 않은 부분이 있어요 https://m.blog.naver.com/dorergiverny/223096804790 [OpenCV][C++] 평균 필터 영상 스무딩smoothing 연산 블러링 blurring 총정리 - boxFilter filter2D image 부드럽 이번에는 필터링에 대해 간단히 알아 본 후에 영상 노이즈 제거하는 방법 중 가장 기본인 평균 필터에 대해... blog.naver.com 바로 가장자리 픽셀 확장 방법에 대한 내용이에요. cv::boxFilter()의 마지막 인자로 borderType이란 인자가 있었어요. base.hpp를 보면, 아래와 같이 가장자리 타입 상수값들이 있어요. 제가 직접 실험해 본 결..

[OpenCV][C++] 평균 필터 스무딩(smoothing) 연산 블러링(blurring) 총정리 - boxFilter filter2D [내부링크]

이번에는 필터링에 대해 간단히 알아 본 후에 영상 노이즈 제거하는 방법 중 가장 기본인 평균 필터에 대해 알아보겠습니다. 그리고 opencv에서 제공하는 평균 필터들의 속도를 측정하여 평균 필터를 적용할 때 어떠한 함수를 사용하는 것이 가장 좋은지를 확인해보겠습니다. 필터링(Filtering) 이란? 필터링은 계산하고자하는 대상 픽셀과 그 주변 픽셀들을 활용하여 새로운 픽셀 값을 얻는 방법입니다. 이 때 주변 픽셀을 어느 범위까지 어떻게 해야 할지를 결정해야 합니다. 이런 역할을 하는 것이 바로 커널(kernel) 또는 윈도우(window), 마스크(mask)라고 불리는 행렬입니다. 일반적으로 우리가 사용하는 커널은 아래와 같은 모양들이 있습니다. 사실 정사각형의 커널을 가장 많이 사용하고 있으며, 원소..

[OpenCV][C++] 동일 영상 판별(체크)하는 쉽고 빠른 방법 - 같은 영상인지 확인 countNonZero convertTo [내부링크]

우리가 영상처리를 하다보면 어떠한 처리 결과 영상이 같은지를 확인하고 싶을 때가 있습니다. 이번에는 쉽고 빠르게 두 영상이 같은지를 확인하는 방법에 대해 알아보겠습니다. countNonZero() 로 알아내기 우리가 가장 쉽게 생각할 수 있는 방법이 두 영상의 차영상을 구해서 모든 픽셀이 0인지 아닌지를 확인하는 방법입니다. 영상을 먼저 입력 받습니다. 그리고 동일한 영상을 만들기 위해 clone을 합니다. cv::Mat src = cv::imread("lena_color.bmp", cv::IMREAD_GRAYSCALE); cv::Mat src_clone = src.clone(); 그 이후 cv::subtract() 또는 cv::absdiff() 를 이용하여 두 영상의 차영상을 계산합니다. cv::Mat..

[OpenCV][C++] Thresholding 이진화 영상 만들기 총정리 (3) - cv::inRange() cv::threshold() cvtColor 범위 binarization [내부링크]

지난번에 이진화에 관련해서 알아봤습니다. https://m.blog.naver.com/dorergiverny/223059732009 [OpenCV][C++] Thresholding 이진화 영상 만들기 총정리 (1) - image threshold binarization otsu triangle 히스토그램 지난번에는 함수 실행 시간을 측정하는 쉬운 방법에 대해 알아봤습니다. https://m.blog.naver.com/dorergi... blog.naver.com 하나의 threshold를 가지고 Threshold보다 높으면 255, 낮으면 0 또는 높으면 255 아니면 원래 값 그대로.. 또는 반대로 이런 식으로 이진화 처리가 되었습니다. 그런데 이번에는 전경(foreground), 즉 내가 추출하고자 ..

[데이터 분석][Python] 넘파이 numpy 파이썬 라이브러리 패키지 총정리 배열 난수 생성 shuffle choice [내부링크]

지난번 까지는 파이썬의 기본 문법들에 대해 알아봤습니다. https://m.blog.naver.com/dorergiverny/223136574637 [데이터 분석][Python] 파이썬 기초 문법 (5) - 분기문 switch case 문 구현, match-case, for-else, while-else 지난 시간에 우리는 조건문과 반복문에 대해 알아봤습니다. https://m.blog.naver.com/dorergiverny/223136... blog.naver.com 이번부터는 좀 더 본격적으로 파이썬 라이브러리들에 대해 알아보겠습니다. 지난번에 데이터 분석에 대한 개요를 알아보면서 데이터 분석 단계를 한번 정리해드렸습니다. 이번에는 데이터 분석 단계별 사용가능한 파이썬 패키지에 대해 알아볼까 합니다..

[데이터 분석][Python] Jupyter Notebook 테마 변경 방법 dark theme 주피터 노트북 파이썬 어둡게하기 어두운 배경 산뜻한 [내부링크]

이전에 jupyter notebook 사용법에 대해 간단히 알아봤습니다. https://m.blog.naver.com/dorergiverny/223125294039 [데이터 분석][Python] Jupyter Notebook 사용법 총정리(1) - 주피터 노트북 아나콘다 파이썬 기초 지난번에 아나콘다 설치 방법과 쥬피터 노트북 실행 방법에 대해 알아봤습니다. https://m.blog.naver.com/... blog.naver.com 이번에는 쥬피터 노트북 테마를 바꾸는 방법에 대해 알려드릴께요. 일단 기본적인 주피터 노트북은 아래와 같이 흰색 배경입니다. 어두운 테마로 변경해볼께요. 모든 작업은 anaconda prompt 에서 진행합니다. (1) jupyter notebook을 최신으로 업그레이드 ..

[OpenCV][C++] 영상 외곽선(contour) 추출 총정리(3) - boundingRect, minAreaRect, minEnclosingCircle arcLength contourArea [내부링크]

이번에는 지난 시간에 이어 findContours() 함수로 얻어왔던 정보를 응용하여 추가적인 정보를 얻을 수 있는 방법에 대해 알아보겠습니다. https://m.blog.naver.com/dorergiverny/223077650900 [OpenCV][C++] 영상 외곽선(contour) 추출 총정리(1) - cv::findContours 윤곽선 경계 컨투어 inRange 검출 지난 시간에는 영상 레이블링에 대해 알아봤습니다. 레이블링을 하면서 object의 크기를 판별하고 크기를 ... blog.naver.com 이는 객체의 모양을 판단하는데 사용될 수 있습니다. boundingRect() 윤곽선 점들을 감싸는 가장 작은 크기의 사각형을 구하는 함수 입니다. 함수 원형은 아래와 같습니다. points ..

[OpenCV][C++] 영상 외곽선(contour) 추출 총정리(2) - cv::drawContours cvtColor 컨투어 찾기 바깥 라인 convexhull [내부링크]

지난번에 영상의 윤곽선을 추출하는 findContours()에 대해 자세히 알아 봤습니다. https://m.blog.naver.com/dorergiverny/223077650900 [OpenCV][C++] 영상 외곽선(contour) 추출 총정리(1) - cv::findContours 윤곽선 경계 컨투어 inRange 검출 지난 시간에는 영상 레이블링에 대해 알아봤습니다. 레이블링을 하면서 object의 크기를 판별하고 크기를 ... blog.naver.com 이번에는 findContours()로 찾은 윤곽선을 영상 위에 그리는 방법에 대해 알아보겠습니다. drawContours drawContours()의 원형은 아래와 같습니다. src 윤곽선을 그릴 영상, gray, color 영상 가능 conto..

[OpenCV][C++] 영상 외곽선(contour) 추출 총정리(1) - cv::findContours 윤곽선 경계 컨투어 inRange 검출 [내부링크]

지난 시간에는 영상 레이블링에 대해 알아봤습니다. 레이블링을 하면서 object의 크기를 판별하고 크기를 이용하여 10원짜리인지, 100원짜리인지 500원짜리인지를 확인하고 총 얼마가 있는지 계산까지 해 보았습니다. https://m.blog.naver.com/dorergiverny/223075866025 [OpenCV][C++] 영상 라벨링(Labeling) 총정리(2) - 동전 개수 세기 총 금액 알아내기 이번에는 지난번에 이어 응용편으로 꾸며 봤어요. https://m.blog.naver.com/dorergiverny/223075828736 영... blog.naver.com 이번에는 물체의 경계를 이루고 있는 외곽선(윤곽선)을 검출하는 방법에 대해 알아보겠습니다. 외곽선을 추출하는 findCont..

[OpenCV][C++] 영상 라벨링(Labeling) 총정리(2) - 동전 개수 세기 총 금액 알아내기 image 레이블링 인덱싱 indexing 원 circle count [내부링크]

이번에는 지난번에 이어 응용편으로 꾸며 봤어요. https://m.blog.naver.com/dorergiverny/223075828736 [OpenCV][C++] 영상 라벨링(Labeling) 총정리(1) - 이미지 레이블링 connectedComponents ccl 이번에는 영상 라벨링(레이블링)이라고 하는 기법에 대해 설명할께요. 영상 라벨링(Image Labeling) 이란... blog.naver.com 영상 라벨링을 통한 동전 개수 세기와 총 금액 알아내기를 해 볼 꺼에요. 동전 개수 총 금액 알아내기 1. 영상 로딩하기 동전 개수를 알아내기 위해서는 먼저 영상을 로딩합니다. 어짜피 gray-scale로 변환을 해야 해서 gray-scale로 로딩을 하였습니다. cv::Mat src = cv:..

[OpenCV][C++] 영상 라벨링(Labeling) 총정리(1) - 이미지 레이블링 connectedComponents ccl [내부링크]

이번에는 영상 라벨링(레이블링)이라고 하는 기법에 대해 설명할께요. 영상 라벨링 (Image Labeling) 이란? 영상 라벨링은 영상 내에서 주위 같은 밝기의 픽셀값을 가지는 픽셀들을 그룹화하여 그룹별로 번호를 매기는 방법을 말합니다. object detection, segmentation 등에 많이 사용되는 기법이에요. 이전에 이진화 기법을 통해 배경과 전경을 구분할 수 있었는데요. https://blog.naver.com/dorergiverny/223059732009 [OpenCV][C++] Thresholding 이진화 영상 만들기 총정리 (1) - image threshold binarization otsu triangle 히스토그램 지난번에는 함수 실행 시간을 측정하는 쉬운 방법에 대해 알아..

[OpenCV][C++] 함수 실행 시간 측정 쉬운 방법 - TickMeter 사용법 총정리 elapsed time chrono getTimeMilli reset blur [내부링크]

지난 번에 함수 실행 시간 측정하는 방법으로 chrono 라이브러리를 사용하는 방법에 대해 알아 보았습니다. https://m.blog.naver.com/dorergiverny/223052685676 [C++] 함수 실행 시간 측정 방법 - chrono 총정리 duration_cast system_clock getTickCount 지난번에 현재 시간 얻는 방법에 대해 언급하면서 chrono에 대해 잠시 알아봤습니다. https://m.blog.naver... blog.naver.com 이번에는 OpenCV를 사용할 때 함수의 실행 시간을 정말 쉽게 측정할 수 있는 방법을 알려드릴께요. cv::TickMeter 클래스 이름에서 풍기는 스멜 그대로~ 함수의 연산시간을 측정할 수 있는 클래스에요. OpenCV..

[C++] 함수 실행 시간 측정 방법 - chrono 총정리 duration_cast system_clock getTickCount [내부링크]

지난번에 네이버 블로그를 통해 현재 시간 얻는 방법에 대해 언급하면서 chrono에 대해 잠시 알아봤습니다. https://m.blog.naver.com/dorergiverny/223040055108 [C++] 현재 시간 알아내기, time_t, chrono 클래스 총정리 localtime_s system_clock steady_clock 지난번에 windows 에서 제공하는 api를 기반으로 현재시간을 알아보는 시간을 가졌었어요. https://m.blog.... blog.naver.com 현재 시간을 알아낼 수 있다는 것은 어떠한 함수 시작 부분에서의 시간을 얻어오고 함수의 끝 부분의 시간을 얻어온 후 두 시간의 차이를 측정하면 그 함수(이벤트)의 수행 시간을 알 수 있겠죠. chrono 클래스란? ..

[C++] 시스템 시간 날짜 얻어오기, SYSTEMTIME, GetLocalTime, GetSystemTime byte 모호한 기호입니다 chrono steady_clock system_clock time_t 현재시간 알아내기 [내부링크]

코딩을 하다보면 시스템 시간과 날짜가 필요한 경우가 많습니다. 보통 로깅을 하기 위해서죠. 다행히 Windows API에서 시스템 시간과 날짜를 가져오는 interface를 제공합니다. SYSTEMTIME은 아래와 같이 정의되어 있어요 typedef struct _SYSTEMTIME { WORD wYear; WORD wMonth; WORD wDayOfWeek; WORD wDay; WORD wHour; WORD wMinute; WORD wSecond; WORD wMilliseconds; }SYSTEMTIME, *PSYSTEMTIME; SYSTEMTIME을 사용하기 위해서는 #include 를 해 줘야 해요. 1. GetSystemTime() GetSystemTime은 UTC 시간을 가져옵니다. UTC 시간..

[OpenCV][C++] 모폴로지(morphology) 연산 총정리(2) - 열림, 닫힘, 탑햇, 그래디언트 morphologyEx 오픈 open close tophat [내부링크]

지난번에는 모폴로지 연산 기본에 대해서 알아 봤습니다. https://m.blog.naver.com/dorergiverny/223063828290 [OpenCV][C++] 모폴로지(morphology) 연산 총정리(1) - 침식(Erode), 팽창(Dilate) getStructuringElement 지난 번에는 영상을 이진화하는 방법에 대해 상세히 알아봤습니다. https://m.blog.naver.com/dorergiverny... blog.naver.com 이번에는 기본 연산인 침식과 팽창을 응용한 모폴로지 연산에 대해 알아보겠습니다. 열기 연산은 침식 → 팽창 하는 연산이고, 닫기 연산은 팽창 → 침식 하는 연산입니다. 팽창과 침식 연산 순서에 따라 효과가 달라집니다. 이번에 살펴볼 모폴로지 연산..

[OpenCV][C++] 모폴로지(morphology) 연산 총정리(1) - 침식(Erode), 팽창(Dilate) getStructuringElement [내부링크]

지난 번에는 영상을 이진화하는 방법에 대해 상세히 알아봤습니다. https://m.blog.naver.com/dorergiverny/223059856814 [OpenCV][C++] Thresholding 이진화 영상 만들기 총정리(2) - adaptiveThreshold() image binarize trackbar gaussian 지난 번에는 일반적인 이진화 방법(binarization)에 대해 알아 보았습니다. 영상 내 밝기가 균일한 경우 적... blog.naver.com 이번에는 이진 영상처리에서 은근히 많이 사용되는 모폴로지(morphology) 연산에 대해 알아보겠습니다. 노이즈 제거, hole 채우기, 끊어진 선 이어 붙이기 등에 많이 사용되고 있습니다. 모폴로지 연산은 이진화 영상에서 가장..

[OpenCV][C++] Thresholding 이진화 영상 만들기 총정리(2) - adaptiveThreshold() image binarize trackbar gaussian 지역 local [내부링크]

지난 번에는 일반적인 이진화 방법(binarization)에 대해 알아 보았습니다. 영상 내 밝기가 균일한 경우 적용할 수 있는 기본적인 이진화 방법이었습니다. https://blog.naver.com/dorergiverny/223059732009 [OpenCV][C++] Thresholding 이진화 영상 만들기 총정리 (1) - image threshold binarization otsu triangle 히스토그램 지난번에는 함수 실행 시간을 측정하는 쉬운 방법에 대해 알아봤습니다. https://m.blog.naver.com/dorergi... blog.naver.com 이번에는 영상 내에서 밝기가 불균일 할 때 사용할 수 있는 적응형 이진화(adaptive threshold) 기법에 대해 알아보겠..

[OpenCV][C++] Thresholding 이진화 영상 만들기 총정리 (1) - image threshold binarization otsu triangle 히스토그램 [내부링크]

지난번에는 함수 실행 시간을 측정하는 방법에 대해 알아봤습니다. https://blog.naver.com/dorergiverny/223079726064 [OpenCV][C++] 함수 실행 시간 측정 쉬운 방법 - TickMeter 사용법 총정리 elapsed time chrono getTimeMilli reset b 지난 번에 함수 실행 시간 측정하는 방법으로 chrono 라이브러리를 사용하는 방법에 대해 알아 보았습니다.... blog.naver.com 이번에는 그레이 영상을 이진화 하는 방법에 대해 알아보겠습니다. 이진화는 특정 밝기 범위 또는 밝은 영역과 어두운 영역 등으로 이분화해서 전경과 배경으로 나누는 방법입니다 Thresholding (이진화) 이진화는 영상의 픽셀들을 두 개의 부류로 나누는..

[OpenCV][C++] 트랙바(trackbar) 사용하기 총정리 - createTrackbar convertTo slider control 슬라이더 waitkey 컨트롤 [내부링크]

지난 번에는 마우스 이벤트를 처리하는 방법에 대해 알아봤습니다. https://blog.naver.com/dorergiverny/223084092098 [OpenCV][C++] 마우스 이벤트 처리 총정리 - onMouse setMouseCallback EVENT_MOUSEMOVE LBUTTONDOWN 이전에는 윈도우 생성 방법과 키보드 입력을 받아 이벤트를 처리하는 방법에 대해 알아보았습니다. https:/... blog.naver.com 이번에는 opencv 에서 제공하는 trackbar 사용하는 방법에 대해 알아보겠습니다. trackbar 사용하기 우리가 영상처리를 하면서 threshold 와 같이 변수를 가변하면서 영상의 변화량을 실시간으로 보고 싶을 때가 있습니다. 이럴 때 사용할 수 있는 것이 ..

[OpenCV][C++] 윈도우 생성, 키보드 이벤트 처리 방법 총정리 - namedWindow imshow waitkey waitkeyEx setWindowProperty [내부링크]

지난번에 트랙바를 사용하는 방법에 대해 살펴보았습니다. https://m.blog.naver.com/dorergiverny/223060058845 [OpenCV][C++] 트랙바(trackbar) 사용하기 총정리 - createTrackbar convertTo slider control 슬라이더 waitkey 이번에는 opencv 에서 제공하는 trackbar 사용하는 방법에 대해 알아보겠습니다. trackbar 사용하기 우리가... blog.naver.com 이번에는 키보드와 마우스 이벤트를 받고 처리하는 방법에 대해 상세히 알아볼께요. 키보드와 마우스 이벤트를 받기 위해서는 윈도우가 하나 필요하겠죠? 윈도우 생성 winName 이란 이름을 갖는 창을 생성하는 함수. winName 창 이름 (생성할 창..

[OpenCV][C++] 마우스 이벤트 처리 총정리 - onMouse setMouseCallback [내부링크]

네이버 블로그에서 윈도우 생성 방법과 키보드 입력을 받아 이벤트를 처리하는 방법에 대해 알아보았습니다. https://m.blog.naver.com/dorergiverny/223084026173 [OpenCV][C++] 윈도우 생성, 키보드 이벤트 처리 방법 총정리 - namedWindow imshow waitkey 지난번에 트랙바를 사용하는 방법에 대해 살펴보았습니다. https://m.blog.naver.com/dorergiverny/2230600... blog.naver.com 이번에는 마우스 이벤트 처리하는 방법에 대해 알아보겠습니다. 마우스 이벤트도 OpenCV에서 만들어진 창에서 마우스 클릭에 반응하거나 마우스를 드래그하여 그림을 그릴 수 있습니다. 1. 마우스 이벤트 콜백 함수 생성 마우스 ..

[OpenCV][C++] 영상에 문자열 출력하기 cv::putText(), cv::getTextSize() 총정리 글씨 쓰기 글자 표현 image fontface fontscale [내부링크]

영상에 문자열을 이용하여 필요한 정보를 표시해야 하는 경우가 있습니다. OpenCV에서는 영상에 문자열을 출력할 수 있는 cv::putText()를 제공합니다. cv::putText는 다음과 같은 인자를 받을 수 있습니다. src 문자열을 출력할 영상 text 출력할 문자열, const String& pos 문자열 출력할 위치의 좌하단 좌표, cv::Point fontFace 폰트 종류, cv::HersheyFonts에서 선택 가능 fontScale 폰트 크기 확대 축소 비율 color 문자열 색상 thickness 문자열 선 두께 lineType 선타입, LINE_4, LINE_8, LINE_AA bottomleftOrigin true: 영상 좌하단을 원점으로, false: 영상 좌상단이 원점으로 여기..

[OpenCV][C++] 두 영상 이어 붙이기 총정리 - hconcat vconcat resize 바둑판 모양 image 원소 합치기 [내부링크]

지난번에는 로고를 영상에 합성하는 방법에 대해 알아봤습니다. https://blog.naver.com/dorergiverny/223051585864 [OpenCV][C++] 영상에 다른 영상 ( 로고 ) 삽입하기(2) - mask 생성, copyTo(), bitwise_and() 합성 합치기 두영 지난번엔 관심영역과 blending을 통한 영상 삽입에 대해 알아봤다면, https://m.blog.naver.com/dorergiver... blog.naver.com 이번에는 영상을 이어 붙이는 방법에 대해 알아보겠습니다. 가로 이어 붙이기, hconcat() 두 영상을 가로로 이어 붙이려면 두 영상의 높이가 같아야 합니다. 저는 이번에 사이즈가 다른 두 영상을 준비했습니다. lena 영상은 512x512 ..

[OpenCV][C++] 영상에 다른 영상 ( 로고 ) 삽입하기(2) - mask 생성, copyTo(), bitwise_and() 합성 합치기 두영상 더하기 [내부링크]

지난번엔 관심영역과 blending을 통한 영상 삽입에 대해 알아봤다면, https://m.blog.naver.com/dorergiverny/223051510275 [OpenCV][C++] 영상에 다른 영상(로고) 삽입하기(1) - ROI 설정, 영상 가중합 로고 넣기 합성 addWeighted() 이번에는 영상에 다른 영상을 삽입하는 방법에 대해 알아볼께요. ROI(Region Of Interest, 관심영역)... blog.naver.com 이번에는 로고를 좀 더 멋지게 삽입해 봐요. 오늘은 좀 Quick 하게 진행할께요. copyTo() 이용하기 이번에도 같은 영상을 가지고 로고를 넣어 볼께요. 1. 영상 준비하기 원본 영상과 로고 영상을 준비합니다. cv::resize()를 이용하여 영상 사이즈를..

[OpenCV][C++] 영상에 다른 영상(로고) 삽입하기(1) - ROI 설정, 영상 가중합 로고 넣기 합성 addWeighted() roi [내부링크]

지난번까지는 OpenCV의 꽃인 cv::Mat 클래스와 UMat 클래스에 대해 알아봤습니다. 원소 접근 속도 비교까지 해 드렸어요. https://blog.naver.com/dorergiverny/223088700257 [OpenCV][C++] cv::Mat 클래스 총정리(6) - OpenCL과 cv::UMat 사용하기 OpenMP tbb gpu 사용 cv::Mat 클래스와 관련되어 벌써 6번째 시리즈네요. 그만큼 영상처리에 많이 사용되면서도 가장 중요한 O... blog.naver.com 이번에는 영상에 다른 영상을 삽입하는 방법에 대해 알아볼께요. ROI(Region Of Interest, 관심영역) 설정 한 영상에 로고와 같은 다른 영상을 삽입하려고 하면 ROI를 먼저 알아야 합니다. ROI(Reg..

[RaspberryPi][파이썬] 라즈베리파이 OpenCV 4.8 쉬운 설치 방법 최신 버전 libqtgui4 에러 오류 [내부링크]

지난번에 라즈베리파이 OS를 설치하고 환경을 세팅하는 방법에 대해 알아봤습니다. https://m.blog.naver.com/dorergiverny/223151432687 [RaspberryPi][파이썬] 라즈베리파이 시작하기 (2) - 환경세팅 SSH VNC Viewer 업데이트 한글폰트 windows 윈 지난번에는 라즈베리파이 4B에 대한 간단한 설명과 함께 RaspberryPi Imager를 이용한 라즈베리파이 O... blog.naver.com 이번에는 라즈베리파이에 OpenCV 를 설치하는 방법을 설명해드리겠습니다. 이전 버전과 변경된 부분이 많아 우여곡절 끝에 알아낸 방법들입니다. 한글버전으로는 아직 관련 글을 보지 못했습니다. 최초이길 바라면서.... 방법 1 되는 분들도 있고 안되는 분들도..

[데이터 분석][Python] 파일 읽기 오류 - read_csv UnicodeDecodeError 'cp949' 'utf-8' codec can't decode byte 인코딩 error [내부링크]

우리가 파이썬에서 데이터를 읽어 올 때 에러가 나는 경우를 종종 볼 수 있습니다. 아래와 같이 판다스의 read_csv() 함수로 csv 파일을 읽어왔는데, 에러가 뜹니다. 에러의 제일 아래쪽을 보니, UnicodeDecodeError: 'utf-8' codec can't decode byte 0x85 in position 3375: invalid start byte 라는 메시지가 보이네요. 원인은 read_csv() 함수가 기본적으로 encoding이 utf-8로 세팅 되어 있는데, 파일이 utf-8로 읽을 수 없다는 내용입니다. 구글링을 해 보면 많은 분들이 'cp949' 로 바꿔보면 된다 라고 하십니다. 그래서 저도 한번 encoding을 'cp949'로 바꿔봤습니다. 그래도 여전히 유사한 에러가 ..

[데이터 분석][Python] 파이썬 기초 문법 (5) - 분기문 switch case 문 구현, match-case, for-else, while-else [내부링크]

지난 시간에 우리는 조건문과 반복문에 대해 알아봤습니다. https://m.blog.naver.com/dorergiverny/223136329385 [데이터 분석][Python] 파이썬 기초 문법 (4) - 조건문 if elif else 반복문 while for in 지난번에는 파이썬 기초 문법 중 딕셔너리와 튜플에 대해 알아보았습니다. https://m.blog.naver.com/dorer... blog.naver.com 조건문을 사용하다보면 의문이 생깁니다. if-elif~else 문을 사용하다보면 조건이 많을 때가 있습니다. if~elif~else 문은 처음부터 조건을 모두 검사하면서 순차적으로 진행하므로 최악의 case에는 모든 조건을 다 검사해야 할 수 있습니다. 하지만 다른 언어에서는 swit..

[데이터 분석][Python] 파이썬 기초 문법 (4) - 조건문 if elif else 반복문 while for in [내부링크]

지난번에는 파이썬 기초 문법 중 딕셔너리와 튜플에 대해 알아보았습니다. https://m.blog.naver.com/dorergiverny/223134369954 [데이터 분석][Python] 파이썬 기초 문법 (3) - 딕셔너리 dictionary 자료구조 key value 튜플 tuple 지난 시간에는 파이썬 기본 문법 중 리스트에 대해 알아봤습니다. https://m.blog.naver.com/dorergiverny/... blog.naver.com 이번에는 조건문과 반복문에 대해 알아보겠습니다. 조건문 if elif else 일정 조건에 맞으면 해당 코드를 수행시키는 조건문에는 if 문이 있습니다. if 문을 하나만 쓸 경우도 있고, if~else 문을 사용하거나 if~elif~else 문을 사용..

[데이터 분석][Python] 파이썬 기초 문법 (3) - 딕셔너리 dictionary 자료구조 key value 튜플 tuple [내부링크]

지난 시간에는 파이썬 기본 문법 중 리스트에 대해 알아봤습니다. https://m.blog.naver.com/dorergiverny/223134321097 [데이터 분석][Python] 파이썬 기초 문법 (2) - 리스트 list 자료구조 data structure append extend 인덱싱 슬 이번에는 파이썬 기초 문법 두번째 강의로, 지난 강의 때 숫자 자료형에 대해 알아 봤고, https://m.blog.n... blog.naver.com 이번에는 자료구조 중 딕셔너리를 알아보겠습니다. 딕셔너리 Dictionary 딕셔너리는 속성은 keys, 값은 values 로 이루어져 있어서 key-value 저장방식이라고도 합니다. 리스트는 대괄호를 사용하는 반면에 딕셔너리는 중괄호를 사용합니다. 중괄호..

[데이터 분석][Python] 파이썬 기초 문법 (2) - 리스트 list 자료구조 data structure append extend 인덱싱 슬라이싱 indexing [내부링크]

이번에는 파이썬 기초 문법 두번째 강의로, 지난 강의 때 숫자 자료형에 대해 알아 봤고, https://blog.naver.com/dorergiverny/223133319038 [데이터 분석][Python] 파이썬 기초 문법 (1) - 숫자 자료형 연산자 bool 논리형 문자열 인덱싱 슬라이 파이썬 기초 문법을 시작하기에 앞서, 어떤 식으로 강의를 시작해야 할지 막막했습니다. 강의 앞부분에 학... blog.naver.com 이번에는 data structure 인 자료구조 중에서 list 에 대해 알아보겠습니다. Data Structure 파이썬에서 사용되는 자료 구조의 종류를 나열해봤고, 그 종류별로 특징을 비교해 봤습니다. 파이썬을 사용할 때 1차원 데이터의 경우에는 리스트 또는 딕셔너리를 가장 많이..

[데이터 분석][Python] 파이썬 기초 문법 (1) - 숫자 자료형 연산자 bool 논리형 문자열 인덱싱 슬라이싱 indexing slicing data structure [내부링크]

파이썬 기초 문법을 시작하기에 앞서, 어떤 식으로 강의를 시작해야 할지 막막했습니다. 강의 앞부분에 학습 목표와 내용을 ppt로 정리하여 공유하고, 그 이후에 Jupyter Notebook을 이용하여 간단한 실습을 하는 방식으로 진행하겠습니다. https://blog.naver.com/dorergiverny/223125294039 [데이터 분석][Python] Jupyter Notebook 사용법 총정리(1) - 주피터 노트북 아나콘다 파이썬 기초 지난번에 아나콘다 설치 방법과 쥬피터 노트북 실행 방법에 대해 알아봤습니다. https://m.blog.naver.com/... blog.naver.com 실습은 문제를 가지고 풀어가는 식으로 해볼께요. ※ 제가 힘들게 정리해서 올리는 자료이오니 퍼가실 때 출..

[데이터 분석][Python] Data Science란 무엇인가?왜 파이썬을 사용하는가? [내부링크]

지난 시간에 데이터 분석 첫시간으로 아나콘다를 설치하는 방법과 쥬피터 노트북에 대한 간단한 실행에 대해 알아봤습니다. 아나콘다가 200인 이상인 기업체에서도 교육 목적의 사용이라면 무료로 사용이 가능한 policy를 직접 확인해보기도 했습니다. (인터넷에 떠도는 유료화 얘기들이 반은 맞고 반은 틀린 것 같아요 항상 조건이 중요합니다.) https://blog.naver.com/dorergiverny/223125248536 [데이터 분석][Python] windows 10에 아나콘다(anaconda) 파이썬 설치 및 Jupyter 노트북 사용법 이번에는 아나콘다 설치 방법 및 Jupyter 노트북 사용법에 대해 알아보도록 하겠습니다. 아나콘다(Anacon... blog.naver.com 이번에는 Data ..

[소프트웨어] 마크다운 (markdown) 문법 총정리 -사용하기 뷰어 [내부링크]

네이버 블로그에서 마크다운 뷰어에 대해 알아보았습니다. https://blog.naver.com/dorergiverny/223047153032 마크다운 뷰어(markdown viewer) 총정리(3) - visual studio 사용하기 마크다운 뷰어에 대한 다른 툴들은 이전에 간단히 알아봤어요. https://m.blog.naver.com/dorergiverny/223... blog.naver.com 이번에는 그래도 프로그래머가 가장 많이 사용하고 있는 IDE인 visual studio 기반으로 마크다운 문법을 파헤쳐 보겠습니다. 마크다운이란? 2004년 존 그루버에 의해 만들어졌고, 쉽게 쓰고 읽을 수 있으며, HTML로 변환이 가능합니다. 마크다운이 각광받기 시작한 이유는 github 덕분이라고 해..

[소프트웨어] 마크다운 뷰어 (markdown viewer) 종류 총정리 - 크롬 뷰어 Chrome notepad++ visual studio typora dillinger [내부링크]

마크다운에 대해 들어보셨나요? 개발을 하면서 깃허브 같은 곳에서 README.md 란 파일을 보셨을꺼에요. 나를 읽어달라고 하는데, 읽기가 어렵더라고요. 마크다운은 사용법이 쉽고 문서를 빠르게 정리할 수 있어서 최근 많이 사용되는 파일 형식 입니다. 그런데 md 파일을 어떻게 열어야 이쁘게 작성된 폼으로 보이는지 어려우셨죠? 가장 많이 사용되는 방법이 바로, 크롬 웹 스토어에서 제공하는 마크다운 뷰어입니다. 크롬 마크다운 뷰어 설치 구글에서 markdown viewer를 치면 제일먼저 검색되는 것이 크롬 웹 스토어에요. 웹스토어에 가면 크롬에 추가를 할 수 있어요 '크롬에 추가' 버튼을 누르고 확장 프로그램 추가를 누르면 크롬에 추가가 되었다고 나와요. 위에 써 있는대로 크롬 브라우저의 오른쪽 상단에 보..

[소프트웨어] Technical Debt 이란? 기술 빚 부채 [내부링크]

이율이 높아지는 요즘 같은 시대에 빚이란 걸 생각하기도 싫습니다. 어려운 길과 쉬운 길이 있다면 누구나 쉬운 길을 선택할 것입니다. 하지만 지금 쉬운 길을 선택했을 경우 간과했던 것들이 결국 나에게 빚으로 다가와 그것을 수정할 때 더 많은 노력과 시간이 필요한 경우가 많습니다. 이런 것을 기술 부채(Technical Debt) 라고 합니다. Technical Debt 란 무엇인가? Technical Debt(=Design Debt, Code Debt)는 직역하자면 "기술적인 빚"이란 뜻으로, 소프트웨어 개발 시 최상의 방법(The Best Overall Solution) 대신에 단기적으로 구현이 쉬운 방법을 선택하여 구현함으로써 발생한 나중으로 미뤄 둔 작업을 나타내는 용어입니다. 즉, 소프트웨어 개발 ..

[소프트웨어] 소프트웨어(SW) 품질 평가 지표 Software 정량적 기준 판단 리팩토링 refactoring 복잡도 중복코드 비율 상호 참조 [내부링크]

SW 품질 평가 지표/기준에 대해 고민해보는 시간을 가져볼까 합니다. 우리가 SW를 많이 개발하고 있지만 이정도의 지표를 지킨다면 좀 더 좋은 소프트웨어를 만들 수 있다?? 뭐 이런 느낌의 글 입니다. 좋은 소프트웨어란? 좋은 소프트웨어란 무엇일까요? 아무래도 구현이 잘 되어 있는지, 신뢰성이 있는지, 사용성이 편한지, 유지보수성이 좋은지, 빠르게 동작하는지, 이식성이 좋은지, 보안성이 보장되는지 등을 만족하는 SW일 것입니다. 다시 정리해보면, 모듈의 복잡도는 낮추고, 모듈의 독립성은 높이고, 모듈의 결함은 없고, 모듈의 공용성을 높이면 SW는 좋다고 할 수 있을 것 입니다. SW 품질이 나빠지는 원인은? SW 품질이 나빠지는 원인은 뭘까요? 자꾸 신규 기능이 추가되거나 요구사항이 변경되거나 일정 단축..

[데이터 분석][Python] Jupyter Notebook 사용법 총정리 - 주피터 노트북 아나콘다 파이썬 기초 쥬피터 [내부링크]

네이버 블로그를 통해 지난 번에 아나콘다 설치 방법과 쥬피터 노트북 실행 방법에 대해 알아봤습니다. https://blog.naver.com/dorergiverny/223125248536 [데이터 분석][Python] windows 10에 아나콘다(anaconda) 파이썬 설치 및 Jupyter 노트북 사용법 이번에는 아나콘다 설치 방법 및 Jupyter 노트북 사용법에 대해 알아보도록 하겠습니다. 아나콘다(Anacon... blog.naver.com 주피터 노트북이란 웹 브라우저 안에서 실행하고 싶은 코드를 입력하고 실행할 수 있는 하나의 어플리케이션이라고 했습니다. 차트, 그래프 등은 ppt, docs 에서 바로 붙여넣기해서 사용할 수도 있고, 데이터 분석 결과물을 엑셀로 출력할 수 있습니다. pyt..

[C++] Windows 10 에 Git (깃) 쉽게 설치하기 총정리 github gitlab gerrit [내부링크]

우리가 소프트웨어 개발을 하다보면 github, gitlab, gerrit 등을 사용하게 됩니다. 이 저장소들을 사용하기 위해서는 git이 설치되어야 합니다. Git 설치파일 다운로드 및 설치하기 1. Git SCM에 접속하여 설치 파일 다운로드하기 https://git-scm.com/ Git git-scm.com Git 사이트에 접속하면 오른쪽 모니터에 있는 'Download for Windows' 버튼을 클릭합니다. 여기서 잠깐! 모니터 아래에 보면 Windows GUIs 가 있는데 여기를 클릭하면 34개의 Git GUI 툴에 대한 소개가 있어요 그 중 제 개인적인 기준으로 많이 사용되는 툴을 간단히 알려드릴께요. 위의 4개 정도이고, Visual Studio의 확장팩으로 지원되는 Tool도 많이 사..

[OpenCV][C++] cv::Mat 클래스 총정리(4) - OpenCL과 cv::UMat 사용하기 OpenCL OpenMP [내부링크]

cv::Mat 클래스와 관련되어 벌써 4번째 시리즈네요. 그만큼 영상처리에 많이 사용되면서도 가장 중요한 OpenCV의 클래스지요. 지난번에 Mat 클래스에 빠르게 원소 접근하는 방법에 대해 알아 봤습니다. https://blog.naver.com/dorergiverny/223037431607 [OpenCV][C++] cv::Mat 클래스 총정리(3) - 원소 ( 픽셀 ) 접근 속도 분석 빠른 확인 matrix 테스트 parallel_fo 오늘은 인터넷 어디에도 없는 정보를 드릴까 합니다. 그러니 귀 쫑긋 눈 활짝 떠 주시고. 이번에는 여러가... blog.naver.com 이번에는 UMat 클래스에 대해 알아보겠습니다. UMat 클래스란? UMat 클래스는 Mat 클래스와 동일한 방법으로 OpenCV의..

[OpenCV][C++] cv::Mat 클래스 총정리(3) - 컬러(color) 원소 접근, 3채널 16bit 32bit 64bit short int float double [내부링크]

지난번에는 gray scale 영상에서 원소에 접근하는 방법에 대해 알아봤는데, https://blog.naver.com/dorergiverny/223035763914 [OpenCV][C++] cv::Mat 클래스 총정리(2) - 원소 ( 픽셀 ) 접근 방법 at ptr data 속도 측정 빠른 방법 지난번엔 cv::Mat 클래스를 선언하고 생성하는 기본적인 방법에 대해 알아봤어요. https://m.blog.naver.c... blog.naver.com 오늘은 color 영상 원소에 어떻게 접근하는지 알아볼께요. 3채널, 즉 컬러 영상은 한 화소를 구성하는 게 3개라는 뜻입니다. 다시 말하면, 빛의 3원소인 R, G, B가 하나의 색깔을 표현한다는 것이에요 opencv에서는 보통 B, G, R 순서로 ..

[OpenCV][C++] cv::Mat 클래스 총정리(2) - 원소 ( 픽셀 ) 접근 방법 at ptr data 속도 측정 빠른 방법 parallel_for concurrency [내부링크]

네이버 블로그를 통해 cv::Mat 클래스를 선언하고 생성하는 기본적인 방법에 대해 알아봤어요. https://blog.naver.com/dorergiverny/223035698739 [OpenCV][C++] cv::Mat 클래스 총정리(1) - 얕은 복사 깊은 복사 matrix 연산 CV_8UC1 filter2d OpenCV를 사용하기 위해서 가장 기본이 되는 클래스는 바로 cv::Mat 클래스 입니다. 1. cv::Mat 클래... blog.naver.com 이번에는 cv::Mat 의 원소 접근 방법과 사용할 수 있는 멤버 변수와 함수에 대해 좀 더 자세히 살펴봐요. cv::Mat 멤버 변수 cv::Mat src; 를 기준으로 멤버 변수와 함수를 설명할께요. 영상 사이즈는 640x480, 1ch/3c..

[OpenCV][C++] cv::Mat 클래스 총정리(1) - 얕은 복사 깊은 복사 matrix 연산 CV_8UC1 filter2d [내부링크]

OpenCV를 사용하기 위해서 가장 기본이 되는 클래스는 바로 cv::Mat 클래스 입니다. 이번부터 몇번에 걸쳐 cv::Mat 클래스에 대해 알아보겠습니다. cv::Mat 클래스란? cv::Mat 클래스는 행렬(matrix)를 표현하기 위한 클래스에요.n차원 단일/멀티 채널 배열을 다 표현할 수 있습니다. OpenCV 공식 문서(https://docs.opencv.org/4.x/d3/d63/classcv_1_1Mat.html) 를 기반으로 설명 드릴께요. OpenCV: cv::Mat Class Reference n-dimensional dense array class More... #include Mat () CV_NOEXCEPT Mat (int rows, int cols, int type) Mat (..

[데이터 분석][Python] 파이썬 실제 주식 데이터 다루기 - 주가 yahoo finance pandas_datareader DatetimeIndex describe 판다스 [내부링크]

네이버 블로그에서 파이썬에 관한 연재를 하고 있습니다. https://blog.naver.com/dorergiverny/223150311138 [데이터 분석][Python] 파이썬 Pandas 패키지 총정리 (5) - 판다스 날짜 datetime groupby concat merge join openpy 지난번까지 판다스에서 많이 사용되는 결측치 처리하는 방법까지 알아봤습니다. https://m.blog.naver.com/... blog.naver.com 블로그에 이어 재미있는 실데이터를 가져와서 처리를 하는 판다스 종합편으로 만들어봤습니다. pandas-datareader 라는 패키지가 있는데, web 상에서 제공하는 데이터를 다운 받아서 데이터 프레임 type으로 만들어주는 명령어가 포함된 패키지를 ..

[RaspberryPi][파이썬] 라즈베리파이 시작하기 (2) - 환경세팅 SSH VNC Viewer 업데이트 한글폰트 windows 윈도우 설정 [내부링크]

지난번에는 라즈베리파이 4B에 대한 간단한 설명과 함께 RaspberryPi Imager를 이용한 라즈베리파이 OS를 설치하는 방법에 대해 알아봤습니다. https://blog.naver.com/dorergiverny/223148961958 [RaspberryPi][파이썬] 라즈베리파이 시작하기 (1) - 윈도우 windows 세팅 Imager install 설치 exFAT 포맷 micro 라즈베리파이를 이용해서 다양한 프로그램을 만들고 사물인터넷 (IoT), OpenCV, 인공지능(AI), 자율... blog.naver.com 이번에는 설치가 끝났으니 환경 설정하는 방법과 PC에서 라즈베리파이를 제어할 수 있는 방법에 대해 알아보겠습니다. 일단 라즈베리파이 스크린 캡쳐하는 방법에 대해 간단히 알아 본 ..

[JK 농원] 용인 타타스 베이글 베이커리 카페 브런치 맛집 - 유림점 수원 광교 수지 TATA's BAGEL 연인 데이트 가족 모임 [내부링크]

이번에는 엊그제 다녀온 베이글 맛집, 베이커리 카페 타.타.스. 베.이.글. 을 소개할께요. 위치는... 아고.. 주변에 뭐가 없어서.. 그냥 서용인 JC 근처에 있다고 보시면 됩니다. 주소: 경기도 용인시 처인구 백령로20번길 3 운영시간: 매일 09:30~21:00/20:30 라스트오더 전화번호: 0507-1352-1994/010-8544-1994 주차장: 매장 바로 앞 주차장 완비 특이사항: 반려동물 동반 가능 제 사진부터 투척하고 시작할께요. 타타스베이글 입구 입니다. 주차장은 타타스베이글 바로 앞 공간과 앞에 공터가 좀 더 있어서 좁지는 않은 편이나, 바로 옆에 '소금' 이란 오리고기 집과 함께 쓰기 때문에 손님이 몰리게 되면 살짝 부족할 수도 있겠구나 생각됩니다. TATA's Bagel 올라가..

[JK 농원] 레고스토어 코엑스점 위치 및 이벤트 - LEGO store 코엑스몰 coex 스타필드 자라 옆 [내부링크]

안녕하세요? 국내 레고스토어 20호점, 강남 최초 코엑스점에 다녀왔습니다. (사실 지난주에 다녀왔는데, 제 네이버 블로그에만 올리고 tistory에는 늦게 올리네요.) 저도 처음이라 위치를 찾는데 한참 걸렸어요. 코엑스 스타필드 내 매장 검색하는 곳에도 아직 업데이트가 되어 있지 않아서 찾아지지 않았네요. 지금쯤은 업데이트가 되었겠죠? 현장에서 급하게 몇 개의 블로그를 찾아 봤는데, 이벤트 관련 내용만 있고, 정확한 위치를 안내해주는 곳이 없어서 한참을 헤맸어요. 네이버 지도에서 검색해도 봉은사역 7번 출구에서 10m 란 말밖에는 없어서.. 그래서 전 봉은사쪽으로 막 걸어갔는데, 아니었어요. 코엑스가 봉은사에서 10m(?) 라는 것일뿐!! 그래서 제가 딱~ 알려드릴께요. 자라, 다이소 옆에 있고, 별마당..

[RaspberryPi][파이썬] 라즈베리파이 비밀번호 초기화 재설정 방법 - root 비번 까먹었을 때 바꾸는 법 passwd password cmdline.txt [내부링크]

이번에는 라즈베리파이 OS를 설치한 후 비밀번호를 까먹었을 때 비밀번호를 초기화 하는 방법에 대해 알려드리겠습니다. (1) micro SD 카드를 PC에 꽂으신 후 아래와 같이 cmdline.txt 파일을 찾습니다. (2) cmdline.txt 파일을 열고 제일 마지막에 한칸 띄우고 init=/bin/sh 를 적고 저장을 합니다. 엔터를 쳐서 다음 라인에 적어도 안되고, 꼭 같은 라인에 마지막 부분에 적어 주셔야 합니다. (저는 notepad++로 작업을 했습니다.) (3) micro SD Card를 라즈베리파이에 꽂은 후 부팅을 합니다. (4) 아래와 같이 검은 화면이 뜨는 것을 확인합니다. 만약 부팅이 정상적으로 되었다면 (2)번을 다시 수행합니다. (5) 아래와 같이 적습니다. 'mount -o r..

[RaspberryPi][파이썬] 라즈베리파이 시작하기 (1) - 윈도우 windows 세팅 Imager install 설치 exFAT 포맷 microSD card 보드 [내부링크]

라즈베리파이를 이용해서 다양한 프로그램을 만들고 사물인터넷 (IoT), OpenCV, 인공지능(AI), 자율주행 자동차까지 직접 만들어보는 강의를 시작하려고 합니다. 라즈베리파이 4B 구성 먼저 라즈베리파이 4B 의 구성에 대해 알아보도록 하겠습니다. 라즈베리파이 3에 비해 라즈베리파이 4에서 가장 크게 변환된 점은 디스플레이 포트가 HDMI 1개에서 2개로 확장되어 듀얼 모니터를 지원하고 USB 3.0을 지원하며, SDRAM을 최대 4GB 까지 지원하는 것 입니다. 또한 Bluetooth가 4.0 에서 5.0으로 업그레이드 된 것 입니다. 라즈베리파이를 사용하기 위해서는 라즈베리파이 OS인 라즈비안(Raspbian) OS 를 설치해야 합니다. RaspberryPi OS 설치하기 (1) Micro SD ..

[C++] Windows에 MinGW 설치하기 (쉬운방법) - gcc 컴파일러 g++ compiler 윈도우10 newen Distro [내부링크]

이번에는 MinGW를 쉽게 설치하고 사용하는 방법에 대해 알아보겠습니다. Windows 에서 GNU gcc 컴파일러를 사용하려면 MinGW를 사용하시면 됩니다. 하지만 sourceforge를 이용하여 설치를 하게 되면, 생각보다 복잡합니다. 여기에서는 쉽게 설치하고 사용하는 방법을 알려드릴께요. 먼저 nuwen.net 에 들어갑니다. https://nuwen.net/ News - nuwen.net News - nuwen.net So high, so low, so many things to know News 10/30/2021 - Version 18.0 of my MinGW Distro is available, finally. 12/11/2019 - Version 17.1 of my MinGW Distro..

[C++] MinGW 설치하기 - g++ 컴파일러 Windows 에서 사용하기 윈도우 compiler gcc install msys [내부링크]

MinGW는 GNU gcc 컴파일러를 windows 환경에서 사용할 수 있도록 만든 도구 입니다. MinGW를 사용하기 위해서 먼저 설치해봐야겠죠? mingw.org 라는 공식 사이트도 있지만, 좀 복잡합니다. 따라서 sourceforge 에서 다운을 받겠습니다. https://sourceforge.net/projects/mingw/ MinGW - Minimalist GNU for Windows Download MinGW - Minimalist GNU for Windows for free. A native Windows port of the GNU Compiler Collection (GCC) This project is in the process of moving to osdn.net/projects/..

[OpenCV][C++] Image Watch 설치 및 사용 방법 - Visual Studio 영상 디버깅 디버그 모드 이미지 픽셀 확인 [내부링크]

이번에는 영상처리 개발자들이 가장 많이 필요로 하고 개발 효율성을 높일 수 있는 Visual Studio 에서 영상을 디버깅 하는 방법을 알아 보겠습니다. Image Watch는 디버그 모드에서 break point를 걸어 놓고 중간 영상 처리 결과를 볼 수 있어서영상처리를 하는데 필수 아이템이죠. Visual Studio에서 도구>>확장 및 업데이트(U)... 을 선택합니다. 그럼 아래와 같은 창이 뜹니다. 여기에서 온라인>>검색 → image watch 를 검색 하시면 Visual Studio에 맞는 버전의 image watch가 검색됩니다. 전 2017이므로 Image Watch 2017이 검색되었습니다.다운로드 버튼을 누릅니다. 그리고 Visual Studio 창을 닫으면 아래와 같이 VSIX 설..

[OpenCV][C++] 최신 OpenCV 설치하기 ( CMake 사용하여 소스 빌드하기), visual studio 2019 contrib 2022 환경 설정 [내부링크]

OpenCV를 설치하여 사용하는 방법은 두가지가 있는데, 아래와 같은 차이점이 있습니다. 설치 실행 파일 소스 직접 빌드 장점 설치가 쉬움 Dll, Lib 빌드 필요 없음 OpenCV 추가 모듈 사용 가능 자신의 시스템 환경에 맞는 Dll, Lib 빌드 가능 단점 OpenCV 추가 모듈 사용 불가 Windows 64 비트만 지원 빌드 작업 어렵고 오래 걸림 설치 실행 파일을 이용하는 방법은 지난번에 다뤘고요. https://blog.naver.com/dorergiverny/223057719024 [OpenCV][C++] 최신 OpenCV 설치하기 (쉬운방법), visual studio 2019 2022 버전 설치 확인 cmake 환경설정 library 영상처리, 컴퓨터 비전을 공부하시는 분들은 OpenC..

[데이터 분석][Python] windows 10에 아나콘다(anaconda) 파이썬 설치 및 Jupyter 노트북 사용법 [내부링크]

이번에는 아나콘다 설치 방법 및 Jupyter 노트북 사용법에 대해 알아보도록 하겠습니다. 아나콘다(Anaconda) 사용 전 확인 사항 아나콘다는 Visual Studio와 같은 프로그램 통합 개발 환경(IDE, Integrated Development Environment) 입니다. IDE란 프로그래머가 소프트웨어를 효율적으로 개발하도록 돕는 소프트웨어 어플리케이션입니다. 그럼 왜 아나콘다를 사용할까요? 아나콘다에는 파이썬이 사용하는 데이터 분석 등 라이브러리(명령어, 함수들)가 포함되어 있으며, 기타 간단한 통계 도구 등을 묶어서 한번에 다운로드 및 설치를 할 수 있기 때문에 편리합니다. 하.지.만. https://legal.anaconda.com/policies/en/?name=terms-of-s..

[OpenCV][C++] 최신 OpenCV 설치하기 (쉬운방법), visual studio 2019 2022 버전 설치 확인 cmake 환경설정 library 라이브러리 세팅 [내부링크]

영상처리, 컴퓨터 비전을 공부하시는 분들은 OpenCV에 대해 들어보셨을 꺼에요. 이번에는 최신 버전 OpenCV를 설치하고 사용하는 방법에 대해 알아볼께요. OpenCV 는 현재 4.8.0 버전이 나와 있습니다. 하지만 저는 바로 전 버전인 4.7.0 버전으로 설명드릴께요. visual studio 2022 버전에 OpenCV 4.8.0을 설치해봤는데, 설치 방법은 완전 동일합니다. https://blog.naver.com/dorergiverny/223142569909 [OpenCV][C++] 최신 버전 4.8.0 Release 업데이트 소식 - 윈도우 Windows 설치하기 Github Cmake 이용 오늘은 기쁜 마음에 신규 버전인 4.8.0 버전 Release 소식을 전해드리고자 합니다. 바로 어..