반응형

OpenCV 90

[Open CV] OpenCV-Python 기초 사용법 _ 카메라와 동영상 처리하기1

Opencv에서는 VideoCapture 클래스를 사용하여 카메라와 동영상으로부터 Frame을 받아오는 작업을 한다. VideoCapture 라는 클래스를 만들고 Open() 의 함수가 카메라 or 동영상을 연결시키고 read() 함수를 계속 호출하여 현재 프레임을 읽어오는 처리를 기본적으로 사용한다. - 카메라 열기 ( cv.VideoCapture ) VideoCapture로 클래스를 열어주고 index의 인자에는 현재 장치관리자에 등록되어있는 카메라의 번호를 입력해준다. 자세히 들어가면 camera_id + domain_offset_id 인데 donmain_offset_id에 0을 입력해주면 운영체제가 알아서 연결해준다. 그래서 카메라 연결수에 맞춰서 인덱스를 입력해주면 된다. 이후 Open이 제대로..

Program/OPEN_CV 2022.04.29

[Open CV] OpenCV-Python 기초 사용법 _ OpenCV 그리기 함수

OpenCV에는 영상 데이터 위에 선이나 도형 텍스틀 그릴 수 있는 기능이 있다. 여기서 중요한건 직선 도형 문자열을 사용할때 영상데이터 자체를 변경을 한다는 점이다. 그래서 영상데이터가 훼손이 될수있기때문에 원본데이터를 백업하고 복사본을 만들어 그 위에 그리는 것이 좋다. 그리고 컬러 도형이나 선을 그리고싶을때에는 영상자체가 컬러 영상이어야지만 동작을 한다. 위 코드를 실행하면 아래 영상이 생성되는데 위 영상에서 사용된 함수들을 설명하면 - img = np.full ( (400,400,3),255,np.uint8 400 x 400 의 RGB성분을 가진 버퍼를 생성하고 모든 RGB값이 255인 영상을 uint8 크기의 형으로 생성한다. - 직선그리기 ( cv2.line ) 영상, 시작점과 끝점 , 선 색..

Program/OPEN_CV 2022.04.28

[Open CV] OpenCV-Python 기초 사용법 _ 마스크 연산과 ROI

ROI라고 하는 것은 Region of interest라고 하는 관심영역인데영상에서 내가 영상처리할 부분의 좌표나 픽셀등을 지정 , 설정해 놓는 것이다. 그리고 마스크연산은 내가 처리하고자하는 곳을 제외한 부분을 0또는 255의 픽셀값으로 구성하는 것이다. 보통은 Mask 픽셀값을 0으로 지정하여 ROI 연산을 할때 0이 아닌부분 ( 1이상인 부분 )을 보고 연산처리한다. OpenCV에서는 마스크 연산을 지원하는 함수들이 몇가지 있는데 이를 설명하면 - cv2.copyTo(src,mask,dst=None) -> dst 위 함수는 저번에 설명했었던 영상 전체 복사가 아닌 영상에서 마스크를 제외한 ROI 영역을 복사하는 함수인데 dst = None을 하게되면 입력받은 영상에 그대로 ROI만 따서 가져오는 기..

Program/OPEN_CV 2022.04.27

[Open CV] OpenCV-Python 기초 사용법 _ 영상의 생성, 복사, 부분 영상 추출

처음으로는 영상을 지정한 크기로 새로 생성할 수 있는데 numpy.emtpy zeros ones full 함수등이 있다. 위 함수들의 인자에는 shape가 있는데 이는 이 전 시간에 배운 shape를 넣어주면된다.GrayScale 은 width , height Color 는 width, height, 3 (채널값) 의 값을 넣어주면 된다. 그리고 dtype이라는 인자가 뒤에 나오게 되는데 기본 Default값이 float으로 지정되어있기때문에 영상으로 사용하기 위해서는 uint8값으로 꼭 지정해주어야 한다. empty 함수는 배열( 새로운 영상)을 만들고 픽셀값은 임의의 값으로 배정이된다.그래서 zeros라는 모든 픽셀값을 0으로 바꿔주는 또는 ones 라는 모든 픽셀값을 1로 바꿔주는 함수를 사용하여 ..

Program/OPEN_CV 2022.04.26

[Open CV] OpenCV-Python 시작하기 _ 실전코딩 ( 이미지 슬라이드쇼 )

- 특정 폴더에 있는 이미지 파일목록읽기 - 이미지를 전체화면으로 출력하기 - 일정시간동안 이미지를 화면에 출력하고, 다음이미지로 교체하기 ( 무한루프 ) 일단 특정 폴더에 있는 이미지파일 목록을 읽을 수 있는 함수는 2가지가 있는데 os.listdir() 또는 glob.glob() 함수를사용하면 읽을 수 있다. 일단 os나 glob을 import해주고 os를 import했을때는 file_list라는 변수에 os.listdir이라는 이미지 리스트 로드함수를 사용하게 되는데 file_list = os.listdir('.\\images')라는 폴더를 지정해주면 현재 프로젝트 폴더내에 있는 images라는 폴더에 접근하고 img_files = [file for file in file_list if file.e..

Program/OPEN_CV 2022.04.24

[Open CV] OpenCV-Python 시작하기 _ Matplotlib 사용하여 영상 출력하기

2022.04.23 금일은 Open CV의 Matplotlib라는 라이브러리에 대한 강의였다. 일단 Matplotlib이라는 라이브러리가 무엇인지부터 살펴봐야 할 것 같다. Matplotlib라이브러리는 함수의 결과값을 그래프, 차트, 히스토그램등으로 쉽게 그려줄 수 있도록 도와줄 수 있는Python 패키지이다 이를 이용하기 위해서는 이 전에 했었던 방법대로 하면 되는데 커맨드창에 pip install matplotlib라고 입력해주면 네트워크에 자동으로 연결되어 해당 라이브러리를 다운받아 올 수 있다. 위와같은 창이 뜨면 해당 라이브러리가 정상적으로 설치되었다는 뜻이다. 이후 중요한 건 영상을 로드할 때 GrayScale 영상인지 TrueColor 영상인지에 따라 Matplotlib 사용방법이 달라지는..

Program/OPEN_CV 2022.04.23

[Open CV] OpenCV-Python 시작하기 _ OpenCV 주요 함수 설명

2022.04.22 금일은 Open CV의 주로 사용되고있는 함수에 대한 강의였다. 전 강의와 블로그에서도 설명했었던 imread 함수가 다시 강의에서 설명되었다. imread의 Default ( 기본값 )은 Color인데 이는 컬러영상을 로드하게 되어도 문제없이 로드된다는 것인데이를 GrayScale로 아주 간단하게 바꿀 수 있었다. imread의 매개변수에 flag라는 변수가 있는데 이를cv.IMREAD_GRAYSCALE 이라는 상수값으로 받아올 경우 트루컬러 영상을 흑백영상으로 받아올 수 있는 기능이 있었다.이외에도 IMREAD_UNCHANGED라는 영상 파일 속성을 그대로 로드하는 상수값도 사용할 수 있다. 또한 이미지의 저장도 아주 간단하게 할 수 있는데imwrite라는 함수로 간단하게 영상을 ..

Program/OPEN_CV 2022.04.22

[Open CV] OpenCV-Python 시작하기 _ 영상 파일 불러와서 출력하기

금일은 OpenCV-Python 시작하기 ( 영상 파일 불러와서 출력하기 ) 에 관한 내용으로 강의를 시작했다. 영상처리를 위해서는 일단 일정 사이즈를 갖고있는 이미지를 로드하여 프로그램에서 표현할 수 있어야하기 때문에 가장 기초적이면서도 가장 중요한 함수이다. 위 사진처럼 OpenCV에 포함되어있는 imread라는 함수를 사용하여 실행폴더내부에 있는 bmp 파일을 로드한다. 이미지 로드를 할 때 이미지가 깨져있거나 기타 오류가 있을때는 img 에서 None이라는 리턴값이 반환되기 때문에 로드 오류에 대비하여 예외처리를 항상 해주거나 해주면 좋다고한다. 그리고 namedwindow라는 함수는 OpenCV에서 지원하는 Window창을 하나 만들어주는 함수이다. 먼저 영상을 로드하여 우리가 보고자할때 Win..

Program/OPEN_CV 2022.04.21

[Open CV] OpenCV-Python 시작하기 _ OpenCV 소개와 설치

금일 강의는 Python시작하기 ( 소개 및 설치 ) 라는 Phython에 관한 설치 및 기초강의였다. 강의의 첫 부분에서는 Open CV에 관한 기초적인 설명으로 시작되었고 Open CV는 무료이고상업적으로도 사용될 수 있다고하고 CPU가 여러개 있을경우 모든 코어를 사용할 수 있도록 할 수 있는 멀티코어 프로그래밍이 기본으로 제공되기 때문에 그래서 좀 더 대중적으로 널리 알려질 수 있지 않았나하는 생각이 든다. 최근 Open CV 3.3에서는 DNN 이라는 Deep Neural Network 모듈을 지원하기 시작했음. Open CV는 크게 2가지 형태로 구성되고있는데 Main 과 Extra 로 구성되어있다. Main은 Open CV 에서 일반적으로 사용하고 있고 핵심적인 기능들로 이루어져있고 Extr..

Program/OPEN_CV 2022.04.19

[Open CV] OpenCV-Python 시작하기 _ 영상의 구조와 표현

2022.04.18 패스트캠퍼스 강의 01일차 후기 금일 강의는 영상의 구조와 표현이라는 영상처리의 기초에 관한 강의였다. 강의의 첫 부분에서 나오게되는 영상의 표현방법에서 기존에 알고 있었지만 깊게 생각해보지는 않았던 '영상'의 정의와 정의된 영상의 종류 ( 그레이스케일 영상 , 트루컬러 영상 ) 에대해 자세히 다루었다. 그리고 영상에서의 좌표계를 설명해주셨는데 이를 행렬로 표현하느냐 , 또는 너비 높이로 표현하느냐에 따라 가로 및 세로의 순서가 달라지기 때문에 다른 분들에게 사진의 크기를 설명해줄때 이를 주의하여 가로 세로의 순서를 명확히해주어야 한다는 것도 좋은 설명이었다. 그레이 스케일과 트루컬러 영상의 크기에대한 차이점에 대한 설명도 해주셨는데 그레이 스케일은 1Byte 트루컬러 영상은 3Byt..

Program/OPEN_CV 2022.04.18
반응형