내맘대로 공부기록.

[ RECENT TIME ]

[Python] numpy.ndarray.T 사용 해보기.

numpy ndarray의 행과 열의 인덱스를 상호 변경 하는 T 메서드를 사용해 본다. 예를 위해 다음의 array 의 준비한다. 사용 방법은 대상 어레이에 .T 만 붙여주면 된다. a = np.array([[1,2,3],[4,5,6],[7,8,9]]) # array([[1, 2, 3], # [4, 5, 6], # [7, 8, 9]]) a_T = a.T #array([[1, 4, 7], # [2, 5, 8], # [3, 6, 9]]) 이론적으로 내가 이해한 T의 작업을 설명하자면, 다음과 같다. 행(row), 열(column) 인덱스를 상호 변경 어레이 A를 정의했다고 가정하면, (T 호출) ➡️ Aij = Aji (이 수식으로 이해)로 표현할 수 있다. 사용한 Usecase 이진화된 이미지의 마스킹 ..

[ Python ] 2023.05.02 0
코랩(colab) 에서 캐글(kaggle) 데이터셋 이용 하는 방법

구글 코랩(colob)에서 캐글(Kaggle) 데이터 셋을 사용하기 위한 방법을 정리한다. 개요는 다음의 내용으로 이해하면 큰 무리가 없을 것 같다. 개요⚙️ 1. 캐글 API 설정 및 준비 - 캐글 계정 - API 토큰 생성(kaggle.json) - 데이터 셋 다운로드 커맨드 찾기 2. 코랩에서 설정 및 데이터 다운로드 - 캐글 설치, 토큰 파일 복사 - 데이터 셋 다운로드 커맨드 실행 - 다운로드한 데이터 셋(zip 파일) 압출 풀기 - 데이터 셋 경로 이용해서, 데이터 이용하면 됨. 1. 캐글 API 설정 및 준비 - 캐글계정 생성 할 것 - API 토큰 생성(kaggle.json) : 1) 계정 프로필 >> Account 클릭 2) Create New API Token 클릭하면, kaggle.j..

[ Python ] 2023.04.09 0
[Python] Run-Length Encoding 사용하여 이미지 픽셀 라벨링 하기.

Run-length encoding - Wikipedia From Wikipedia, the free encyclopedia Form of lossless data compression Run-length encoding (RLE) is a form of lossless data compression in which runs of data (sequences in which the same data value occurs in many consecutive data elements) are stored as a en.wikipedia.org 전체 개요 단일 데이터로 복수의 데이터를 표현한다. 어레이 형태로 변환하여, Decoding 하면 특정 인덱스에서의 데이터 해석이 가능해진다. Computer Vis..

[ Python ] 2023.02.12 0
[웹 개발 개념] 2. node.js환경 서버 생성하기

서버 생성 node.js 환경에서 웹서버를 생성하기 위해, Express.js를 사용한다. 서버를 생성함에 있어서 다음과 같은 작업이 수반 되어야 하는데, 해당 내용은 '백엔드 세팅'에서 상세하게 다루도록 한다. '백엔드 셋팅' 에서 다룰 내용 1) 뷰 엔진 셋팅(set) 2) 미들웨어 설정(use) 3) 에러 예외 발생시 대응 방법 설정(use, error handling) 4) 라우팅 설정(get, post) 자세한 설명은 공홈에서 확인할 수 있다. Express "Hello World" example Hello world example Embedded below is essentially the simplest Express app you can create. It is a single file a..

[ WEB ] 2022.09.19 0
웹 개발 요소 하나씩 정리. 기능 별 개념.

UPDATE ----------------------------------------------------------------------------------------------------------------- (작성 중) 2022.09/16 : 전체 내용 구성 예전엔 클론 코딩을 이것저것 만들어보긴 했지만, 코드를 칠 때만 이해하고, 내 걸로 만드는 작업을 미흡하게 방치했었던 것 같다. 지금 생각하면 너무 아까운 시간이었던 것 같다. 하지만, 어렴풋이 기억에 남아있고, 내가 잘못된 방식으로 학습을 했음을 깨달았고, 웹 개발의 각 요소별로 하나씩 뜯어서, 정리하는 것이 좋다고 다짐하게 되는 좋은 경험이었다고 생각된다. 그래서, 웹 개발이란 것을, 가능한 한 언어와 프레임워크의 의존성을 최소화하는 방..

[ WEB ] 2022.09.16 0

[ POPULAR POST ]

[ openCV | C++ ] 비주얼 스튜디오 코드(Visual Studio Code)에서 openCV 환경 설정 하는 방법(맥 버전)

1. 비주얼 스튜디오 코드 설치 2. C++ 컴파일 환경 구성(일반) 🔗 tasks.json 파일 3. C++ 디버그 환경구성(일반) 🔗 launch.json 파일 4. opencv 패키지 설치 5. opencv 환경 설정 🔗 c_cpp_properties.json 파일 5.1 pkg-config 설정 5.2 pkg-config PATH 설정 5.3 opencv 패키지를 참조하여 컴파일하기 환경 설정을 해 본 결과, Xcode를 이용하는 편이 환경설정은 간단합니다. [ openCV | C++ ] Xcode 에서 openCV 환경 설정 하는 방법 맥의 Xcode IDE 사용자를 대상으로 하는 글인 점 참고 부탁드립니다. 그리고, 이 내용은 유투부 튜토리얼 및 게시자의 웹사이트 내용과 동일하며, 본인의 학습..

[ C++ ] 2021.03.05 11

[ openCV | C++ ] approxPolyDP 함수 사용 방법.

어떤 함수 ❓ 🤔 "형상을 근사" 하는 함수입니다. 검출된 형상(외곽선)을 표현하기 위해, 점 데이터가 사용되어지는데요. 그 데이터 수를 수많은 어레이 점 데이터에서, 보다 적은 점으로 커브 또는 다각형 형상을 표현할 수 있게 됩니다. 조금 더 쉽게 풀어 얘기하면, 사각형 물체의 컨투어(외곽선)를 점 20개로 세밀하게 표현했다고 합시다. 하지만 우리는 사실 사각형(다각형)을 표현하기 위해 꼭지점 네 점만 있으면 되죠. 즉, 사각형(특정 형상)을 표현하기 위한 최소 데이터를 20에서 4개로 근사화 했다 ! 라고 하는 작업을 해주는 함수입니다. (근사 정확도 설정에 따라서, 커브 또는 점 데이터 갯수는 변경될 수 있습니다.) approxPolyDP( 컨투어 포인트 어레이, 근사된 포인트 어레이, 근사 정확도..

[ C++ ] 2021.03.17 0

[ openCV | C++ ] findContours 함수 사용법, 입력 출력(포인트) 값의 이해

🔗 함수와 매개변수 : findContours(매개변수입력) 🔗 DEMO. 🖼 이미지 이진화 하기 😷 HSV 이미지 마스킹 하기 📏 컨투어 찾기 이진화(Binary) 이미지 소스로 부터 사물의 외곽 형상을 검출하여, 사물인식에 사용될 수 있습니다. 여기서 이진화 이미지는 GRAY SCALE 또는 HSV SPACE 색으로 변환된 이미지에 대해서 적용 될 수 있습니다. GRAY SCALE, HSV SPACE 이미지 변환은 아래 글을 참고 부탁드립니다. [ openCV | C++ ] 머신비전 이해를 위한 openCV 기초 리뷰 🙋🏻‍♂️ openCV를 시작하면서, 무(無) 일 때 openCV의 느낌? 📋 튜토리얼 시작 📏 이미지 리사이징 🖼 이미지 변환 1. 그레이 스케일링 2. HSV 스케일링 ⭕️ 엣지검출..

[ C++ ] 2021.02.23 0

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

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

[ C++ ] 2021.05.08 2

[ openCV | C++ ] 머신비전 이해를 위한 openCV 기초 리뷰

🙋🏻‍♂️ openCV를 시작하면서, 무(無) 일 때 openCV의 느낌? 📋 튜토리얼 시작 📏 이미지 리사이징 🖼 이미지 변환 1. 그레이 스케일링 2. HSV 스케일링 ⭕️ 엣지검출 1. 블러(Blur) 처리 2. 엣지 검출, Canny Edge Detector 🙇🏻‍♂️ 기초 이미지 처리를 학습 후 openCV의 느낌? 🙋🏻‍♂️ openCV를 시작하면서, 무(無) 일 때 openCV의 느낌? 많은 조사를 하지 않고 막 공부하자! 느낌으로 달려들다가, openCV를 openGL과 헷갈려 openGL을 공부해부렸다. . 처음부터 하고자 했던 방향은 머신 비전을 이용한 자율주행, 또는 머신 비전을 이용한 결품 검사 소프트웨어 작성 등을 목표로 했었지만 완전히 다른 방향으로 가고 있었다. 어쨌든 open..

[ C++ ] 2021.01.30 2

[ C 언어 ] 실무에서 보고느낀 memset 함수 사용후기.

C언어의 메모리 관련 함수는 memset, memcpy, memmove 기타 등등 꽤 있는 것 같습니다. 'mem' 은 memory에 관련된 함수라는 것을 의미하고, C언어의 내장 함수에서 접근할 수 있습니다. 요런 메모리 블럭을 조작하는 함수는 String.h라는 헤더 파일에서 참조할 수 있습니다. memset은 세개의 인수를 받고, 다음과 같습니다. void* memset(void* ptr, int value, size_t num); (자세한 설명은 모두의코드(memset설명) 를 참고하시기 바랍니다. ) 요컨대 포인터 변수를 이용해서 해당 주소가 가리키는 값을 사용자가 원하는 값으로 변경할 수 있습니다.. 그래서 의미는 알겠는데 어떤 경우에 이걸 사용하나? 감이 잘 오지 않았습니다. 그러던 참에, ..

[ STUDY ] 2020.11.22 1

[ openCV | C++ ] 기본기. 이미지에 도형 추가 / 라벨링 하는 방법

이미지에 도형을 추가하거나 라벨링을 하는 순서는 아래와 같다. 이미지 또는 영상에서 사물(얼굴) 인식 기능을 구현한다. 인식된 부분에 테두리를 표시하여 정확도를 표시하거나, 해당 물체가 어떤 물체인지 텍스트로 표기한다. 이런 라벨링 작업들은 수작업으로 처리하지 않아도 되는 경우도 있으며, 용도에 맞게 해당 요소들을 이미지에 다시 뿌려줘야 하는 경우도 있다. 그래서, 수작업이 필요할 경우 어떤 원리에 의해 이미지에 도형 또는 텍스를 표시할 수 있는지 정리해보았다. 이미지 준비 ✅ 흰색 이미지를 만들어서 작업했다. // Mat variableName(width, height, type?, Color) Mat img(512,512,CV_8UC3, Scalar(255,255,255)); 흰색의 이미지가 만들어졌..

[ C++ ] 2021.02.04 0
반응형