[OpenCV] OpenCV-Python으로 배우는 영상 처리 및 응용 - 6장 연습문제 풀이
·
Programming/Python
1. 그레이 스케일(gray-scale) 이미지가 의미하는 것이 무엇인지 설명하시오.디지털 영상처리에서 보통 단일채널의 영상을 그레이 스케일(gray-scale) 영상이라고 부른다. 하나의 화소값은 0~255의 값을 가지는데 0은 검은색을, 255는 흰색을 의미한다. 이렇게 화소값이 회색의 비율 정도로 표현되고, 0~255값을 가지는 화소들이 모여서 구성된 것이 영상이 때문에 그레이 스케일 영상이라 한다.(교재 226p) 2. 화소의 밝기와 화소값에 대해서 설명하시오.하나의 화소값은 0~255의 값을 가지는데 0은 검은색을, 255는 흰색을 의미한다.(교재 226p) 3. 두 개의 영상을 합성하는 방법을 두 가지 이상 기술하시오.두 개의 영상을 합하면 영상 합성을 할 수 있다.OpenCV를 이용하여 영상..
[OpenCV] OpenCV-Python으로 배우는 영상 처리 및 응용 - 5장 연습문제 풀이
·
Programming/Python
1. OpenCV의 채널 처리 함수에 대해 아는 대로 기술하시오.컬러 영상은 파란색, 녹색, 빨간색의 각기 독립적인 2창원 정보를 합쳐 놓은 배열로 정의가 가능하며, 이를 표현하기 위해 채널이라는 개념이 도입됐다. 일련의 3개 원소로 하나의 컬러 화소가 구성되며, numpy에서는 화소 단위로 순회한다. 이 컬러 배열을 분리하면 각 채널을 단일채널 행렬로 구성할 수 있으며, 세부적인 영상처리에 이용될 수 있다. (교재 162p) cv2의 채널 처리 함수로는 cv2.merge()와 cv2.split()이 있으며, 각 함수는 아래와 같다. cv2.merge(mv[,dst]) → dst▪ 설명: 여러 개의 단일채널 배열을 다채널 배열로 합성한다.인수 설명mv합성될 입력 혹은 배열 벡터, 합성될 단일채널 배열들의..
[OpenCV] OpenCV-Python으로 배우는 영상 처리 및 응용 - 4장 연습문제 풀이
·
Programming/Python
1. 콜백 함수란 무엇인가?콜백 함수는 일반적으로 이벤트를 처리하기 위한 함수로, 개발자가 시스템 함수를 직접 호출하는 방식이 아니라, 어떤 이벤트가 발생하거나 특정 시점에 도달했을 때 시스템이 개발자가 등록한 함수를 호출하는 방식이다. (교재 96p) 2. 윈도우를 지정하는 cv2.namedWindow() 함수의 두 번째 인수(flags)에 대한 옵션은 여러가지가 있다. 그 중에서 cv2.WINDOW_NORMAL와 cv2.WINDOW_AUTOSIZE간의 차이를 설명하시오.두 번째 인수 flags는 인도우의 크기 조정과 관련된 파라미터이다.cv2.WINDOW_NORMAL은 0의 값을 가지며, 윈도우 크기 조정이 가능하다.cv2.WINDOW_AUTOSIZE는 1의 값을 가지며, 표시된 행렬의 크기에 맞춰 ..
Windows/Kali Linux 듀얼부팅하기
·
카테고리 없음
개요며칠 전부터 Elastic stack 공부를 시작했다. 처음에는 리눅스 환경도 없고 귀찮으니 윈도우에서 깔짝이고 있었는데 하다보니 그래도 역시 리눅스가 편하겠단 생각이 들었다. 지금까지 내가 리눅스를 쓴 환경은 AWS EC2, WSL, VMWare, Raspberry pi 정도가 있는데, 다양한 이유로 그냥 잘 안쓰는 노트북에 리눅스를 깔기로 결심했다. - AWS EC2 : 클라우드 비용 부담 / Free Tier 다씀 / 새 계정 파서 해도 Free Tier 사양 안좋음.- WSL : 뭔가 억압된 느낌. 웬만한건 다 잘 돌아가긴 하는데 문제 터졌을 때 찾아보면 WSL라서 그렇다고 할 때의 좌절감...- VMWare : 무겁다... 느리다... 켜고 끌 때 시간이 많이 든다. - Raspberry ..
[Jupyter extension] Jupyter 확장프로그램 개발 환경 구축
·
Programming/Python
공식 문서를 따라 환경을 구축 해보자. Conda 설치 및 가상환경 활성화Conda 설치파일 레포지토리에서 설치 파일을 다운로드 한다.내 환경은 우분투 22.04이기 때문에 최신 리눅스 버전을 curl로 땡겨왔다.curl --output anaconda.sh https://repo.anaconda.com/archive/Anaconda3-2024.06-1-Linux-x86_64.sh sha256sum로 파일 해시를 따서 다운로드 페이지에서 제공하는 해시와 비교해 검증할 수 있다.sha256sum anaconda.sh 해시가 일치한다면 무사히 파일이 다운로드 된 것이고 다운로드 된 sh 파일을 실행시키면 conda 설치가 시작된다.설치가 끝난 뒤에 conda init을 하면 필요한 설정이 ~/.bashrc ..
[JS 개념정리 3] scope, 스코프 체인, 호이스팅, TDZ, 클로저
·
Programming/FE
JavaScript의 scope(스코프)는 변수와 함수의 접근성과 생존 기간을 결정하는 규칙이다. 스코프의 종류전역 스코프(Global Scope)함수 스코프(Function Scope)블록 스코프(Block Scope)렉시컬 스코프(Lexical Scope)스코프와 관련된 개념들스코프 체인(Scope Chain)호이스팅(Hoisting)클로저(Closure) 전역 스코프(Global Scope)코드의 가장 바깥쪽에 선언된 변수나 함수어디서든 접근 가능과도한 사용은 네임스페이스 오염을 일으킬 수 있음 함수 스코프(Function Scope)함수 내부에 선언된 변수var 키워드로 선언된 변수에 적용해당 함수 내에서만 접근 가능function exampleFunction() { var functionS..
[JS 개념정리 2] call, apply, bind 메서드
·
Programming/FE
call, apply, bind 메서드는 JavaScript에서 함수의 this 값을 명시적으로 지정하고 함수를 호출하는 방법을 제공한다. Function.prototype의 메서드이므로 모든 (화살표함수를 제외한)함수에서 사용할 수 있다.  call 메서드syntax: func.call(thisArg, arg1, arg2, ...)주어진 this 값과 개별적으로 제공되는 인수들로 함수를 호출function greet(greeting) { console.log(`${greeting}, ${this.name}`);}const person = { name: "Alice" };greet.call(person, "Hello"); // 출력: Hello, Alice apply 메서드syntax: func.a..
[JS 개념정리 1] script 태그 속성, ES6 module, strict mode, 화살표함수
·
Programming/FE
항상 Next.js에서 자동으로 설정해주는 환경을 쓰다보니 기초적인 개념이 확고하지 않아 정리하고 간다. Script 태그의 속성들1. 기본(속성 없음)HTML 파싱을 중단하고 스크립트를 즉시 다운로드 및 실행스크립트 실행이 완료될 때까지 HTML 파싱이 재개되지 않음2. async 속성스크립트를 비동기적으로 다운로드HTML 파싱과 병렬로 다운로드 진행다운로드가 완료되면 HTML 파싱을 중단하고 즉시 스크립트를 실행여러 스크립트가 있을 경우 다운로드 완료 순서대로 실행3. defer 속성스크립트를 비동기적으로 다운로드HTML 파싱과 병렬로 다운로드 진행HTML 파싱이 완료된 후에 스크립트 실행여러 스크립트가 있을 경우 HTML에 작성된 순서대로 실행4. type="module" 속성스크립트를 ES6 모듈..
2023~2024.5 회고
·
회고
20232023년은 심적으로 이슈가 있어서 뭘 했는지도 모르게 지나갔다.   기록할만한 사건들은 이렇다. 한이음두근두근 한국사 여행앱client: Flutterservier: Nest.jsvcs: gitlabinfra: kubernetes on raspberry pi이용자가 유적지를 방문하면 유적지와 관련된 역사적 인물의 호감도가 오르고, 특정 임계점을 넘을 때마다 역사적 인물의 스토리가 풀리는 미연시(?) 게임. 한국사와 관련된 공공 데이터를 이용했다.창업 때문에 바빠서 프로젝트를 제대로 완료하지 못했다.쿠버네티스 스터디쿠버네티스 인 액션10장까지 보았는데 지금은 다 까먹었다. (기록의 중요성... 아이패드에 손필기 했었는데 블로그에 쓸걸 그랬다.)이 또한 창업 때문에 바빠서 제대로 완료하지 못했다...
Next.js 프로젝트에 GA4 붙이기(사용자 속성, 잠재고객, UTM)
·
Programming/FE
극초기 스타텁 초기 멤버로 일하면서 벌써 4번째 랜딩 리뉴얼을 하고 있다. 첫 랜딩은 되는대로, 두번째도 되는대로, 세번째는 부스 직전에 3일만에 만들고 이번에는 개발하는데 일주일 정도 걸린 것 같다. 기존 랜딩페이지는 홈, 회사 소개, 제품 소개로 구성되어 있었고 이번에는 간결하게 원페이지에 제품 소개만 담는 방향으로 가기로 했다. 랜딩은 규모가 작아서 매번 다양한 UI 라이브러리를 써보고 있다. tailwindcss, chakra-ui를 거쳐 이번엔 panda css와 framer-motion의 조합으로 진행했다. 보통 Next.js를 기본으로 사용했는데 한번은 Svelt를 썼다가 팀원들의 항의에 다시 Next.js로 돌아왔다. 소기업에서 괜히 기술 스택 늘리지 맙시다.   개발이 끝났다면 이제 KP..