본문 바로가기

& 프로그래밍

(64)
비전공자 프로그래밍 도전하기 요즘 부쩍 프로그래밍에 대한 관심도가 높아지면서 하나둘 프로그래밍을 배워보려고 입문하는 사람들이 늘어간다 하지만 대다수가 전공자가 아니라는 이유로 쉽게 포기하거나 어려움을 느끼곤 하는데, 내가 생각하는 몇가지 이유를 짚어보자면~ 1. 진득하게 집중할만한 환경이 갖춰지지 않는다 - 대학을 다니면 오로지 해당 과목만 주구장창 배우고, 그 시기에는 삶의 목적이 거의 공부인데다, 그 공부도 분야가 넓은 것도 아니고 오로지 프로그래밍에 대한 것만 연결지어 배우니까 같은 시간이 주어지더라도 뒤늦게 시작하는 사람들과 같은 환경이라고 할 수가 없지 않을까? - 모든 공부가 다 그러하겠지만 특히 프로그래밍은 그저 코드를 배우고 작성하고 끝이 아니라 계속 디버깅을 해가면서 오류를 발견하고 그에따른 수정과 보완을 해나가면서..
openCV 프로그래밍 기초(VideoWriter) 이전 포스팅에서 비디오 파일을 읽어오는 방법을 배웠다 이번에는 비디오파일을 녹화하는 방법을 알아보려 한다 자율주행 시스템은 카메라로부터 실시간으로 받는 영상정보를 인식하여 학습된 모델을 바탕으로 결과를 도출하는 방식인데 그 과정에 가장 핵심이면서 기본인 카메라를 컨트롤하는 방법을 배우는 것이다 1. 라이브러리 임포트 import cv2 import numpy as np 2. 카메라로부터 데이터를 가져온다 cap = cv2.VideoCapture(0) #모듈 대소문자 주의 #0 : 0번 카메라를 의미 3. 카메라 연결상태 확인 if cap.isOpend() == False : print('Unable to read camera feed') 카메라가 정상적으로 연결되지 않았다면 해당 문구를 출력하여 안내하도..
openCV 프로그래밍 기초(dnn 모듈) openCV는 미디어(사진, 영상)소스 분석에 최적화된 라이브러리로 무엇보다 실시간 이미지 프로세싱에 중점으로 개발된 라이브러리다 openCV 라이브러리를 이용해 이미지, 영상에 대한 컴퓨터비전 분석을 용이하게 할 수 있고, openCV 안에도 그에 맞게 다양한 모듈을 지원하고 있다 오늘은 openCV라이브러리 내 다양한 모듈 중 dnn(deep neural network)라는 모듈을 알아보려 한다 많은 블로그나 레퍼런스에서 소개하는 내용으로는 dnn 모듈은 이미 생성되어있는 네트워크에서 순방향 실행을 위한 용도로 설계되어 기존의 여러 deep-learning framework에서 학습한 모델을 그대로 불러와서 dnn 모듈을 이용해 해당 모델을 실행시키는 방식으로 사용된다는 부분이다 cv_enet_mod..
openCV 프로그래밍 기초(영상 읽기) 이전까지 배운부분은 이미지파일에 대한 편집과 수정을 했다면 이번엔 영상 읽어오는 방법을 알아보겠다 영상을 읽어오는 방법은 여러가지가 존재하는데 - 저장되어있는 영상파일을 불러오는 방법 - 연결되어있는 카메라에서 영상소스를 바로 (녹화)받아오는 방법 두가지를 모두 해보겠지만 오늘은 첫번째 방법을 연습해보려한다 1. openCV 라이브러리 임포트 import cv2 2. 영상파일이 저장된 경로 불러오기 cap = cv2.VideoCapture('data/videos/chaplin.mp4') #카메라를 실행하여 바로 객체를 생성하는 방법은 아래주석코드이다 # cap = cv2.VideoCapture(0) #괄호 안 숫자는 카메라의 개수이다. 1개일때는 0부터 시작하여 순서를 매긴다 여기서 이전에 배운 이미지파..
openCV 프로그래밍 기초(원, 타원 그리기) 지난시간 openCV를 활용하여 직선, 사각형 그리기에 이어서 원, 타원을 그리는 함수를 알아보자 1. 필수 라이브러리 임포트 import cv2 import numpy as np 2. 저장된 이미지파일 경로를 가져와 변수에 저장 image = cv2.imread('data/images/mark.jpg',1) 3. cv2.circle 함수를 이용해 원 그리기 imageCircle = image.copy() cv2.circle(imageCircle, (350,200), 150, (255,0,0), thickness = 2) cv2.imshow('image circle', imageCircle) 4. cv2.ellipse 함수를 이용해 타원 그리기 imageEllipse = image.copy() cv2.e..
openCV 프로그래밍 기초(직선, 사각형 그리기) openCV에서는 영상, 비디오에서 처리 결과를 표시하고 쉽게 확인할 수 있도록 다양한 모형을 삽입할 수 있다 그 여러 도형 작성 방법 중 직선과 사각형을 그리는 방법에 대해서 배워보았다 1. 라이브러리 임포트 import cv2 import numpy as np 2. 파일 경로 불러와 변수에 저장 img = cv2.imread('data/images/mark.jpg') 3. 이미지파일 열어서 원본확인 cv2.imshow('original',img) 4. 원본 이미지를 복사해서 변수에 저장 imageLine = img.copy() #생략가능한 코드인데 나는 이 사진을 가지고 여러번 실습할거라 혹시나 원본이 상하지 않도록! 5. 선그리기 작성 cv2.line(imageLine, (322,179), (400..
openCV 프로그래밍 기초(resize) 이번엔 openCV 라이브러리를 활용해서 이미지crop, resize하는 방법을 공부해보자 1. openCV 라이브러리 임포트 import cv2 2. 이미지가 저장된 경로 불러오기 source = cv2.imread('data/images/sample.jpg',1) # 위 괄호의 1은 없어도 되거나, cv2.IMREAD_COLOR로 대체가능 3. 이미지를 resize할 크기를 지정한다 scaleX = 0.6 scaleY = 0.6 # 이미지파일 원본 크기를 1로 잡고 계산한다 # 가로,세로 자신이 원하는 사이즈를 각 변수에 지정하고 저장한다 4. resize할 이미지파일을 변수에 저장한다 ScaleDown = cv2.resize(source, None, fx=scaleX, fy=scaleY, inter..
openCV 프로그래밍 기초(이미지파일 읽고 쓰기) 지난시간 openCV 라이브러리를 활용하여 이미지(영상)파일을 열어보는 방법을 알아보았다 이번에는 이미지파일을 읽고 쓰는 방법을 알아보자 (참고) 나는 VScode에 streamlit 가상환경을 이용하여 활용하고 있다 1. 먼저 opencv 라이브러리를 임포트해준다. import cv2 2. 저장되어있는 이미지파일의 경로를 불러온다. imageName = 'data/images/sample.jpg' 3. 이미지파일을 변수에 저장하여 읽어준다. image = cv2.imread(imageName, 1) cv.2imread에 대한 레퍼런스는 이전 게시글에 간략하게 설명해놓았으니 참고! openCV 프로그래밍 기초(이미지 파일 열기) openCV(Open Source Computer Vision)이란 - 영상..