본문 바로가기

영상처리

(6)
OpenCV를 이용해 이미지 출력하기 OpenCV는 래스터 그래픽스 이미지 파일 포맷을 쉽게 불러올 수 있는 별도의 함수를 제공합니다. 이 함수는 불러온 압축 해제된 이미지 데이터 구조에 필요한 메모리 할당과 같은 복잡한 작업을 처리하며, 파일 시그니처(File Signature)를 읽어 적절한 코덱을 결정합니다. OpenCV에서 이미지를 불러올 때는 확장자를 확인하는 방식이 아닌 파일 시그니처를 읽어 파일의 포맷을 분석합니다. 파일 시그니처는 파일 매직 넘버(File Magic Number)라고도 하며, 각 파일 형식마다 몇 개의 바이트가 지정되어 있습니다. 예를 들어, PNG 확장자의 경우 89 50 4E 47 … 형태로 파일 헤더에 포함되어 있습니다. 이미지 입력 함수는 운영체제의 코덱을 사용해 운영체제 별로 픽셀값이 다를 수 있습니다..
OpenCV을 이용해 카메라(웹캠) 출력 OpenCV를 하면서 기본이라고 할 수 있는 카메라 출력을 해볼 것입니다. 우선 완성 코드를 보면 메인코드 import cv2 capture = cv2.VideoCapture(0) capture.set(cv2.CAP_PROP_FRAME_WIDTH, 640) capture.set(cv2.CAP_PROP_FRAME_HEIGHT, 480) while cv2.waitKey(33) < 0: ret, frame = capture.read() cv2.imshow("VideoFrame", frame) capture.release() cv2.destroyAllWindows() 구문 코드 해석 capture = cv2.VideoCapture(0) 비디오 출력 클래스(cv2.VideoCapture)를 통해 내장 카메라 또는..
영상처리 및 기초 딥러닝 공부 방법 및 과정(개인적인 생각) 필자가 딥러닝부터 시작해서 영상처리를 공부하기까지의 공부방법을 소개하려고한다(광고x, 초급자 기준) 파이썬 및 C, C++ 우선 기본적으로 본인이 가고자 하는 기업에서 사용하는 언어를 마스터까진 아니더라도 코드 해석 및 기초적인 코드, 중견기업 이상을 원한다면 코딩테스트 준비까지 하는 것을 추천한다. 현재 기업에서 대부분 쓰이는 AI 관련 코딩언어는 대표적으로 파이썬 및 C종류이며 현재 BrainJS가 새로 생겨남에 따라 자바스크립트도 점점 성장세를 이루고 있다. 한줄요약: 한 언어를 기준으로 점점 스펙트럼을 넓히는 것을 추천(넓힐수록 반기는 기업들은 많을 것 같음) 넘파이 파이썬을 공부하게 되었다면 두번째로는 넘파이가 필수이다. 기초적인 shape 및 계산을 도와주는 numpy이다. 넘파이는 딥러닝 과..
MIL이란 무엇인가.(간략하게 경험해보기) 영상처리쪽 공부하는 사람들은 대부분 openCV나 YOLO를 대표적으로 알고 있을 것이다. 하지만 기업에서는 위의 라이브러리 및 프레임워크 뿐만 아니라 MIL, Cognex등 다양한 경험을 요구한다. 우리는 이 중 MIL에 대해 간단하게 알아보도록 할 것이다. Matrox의 라이브러리인 MIL도 OpenCV와 같이 영상처리를 가능하게 한다. OpenCV에서 여러줄에 걸쳐 사용할 수 있는 기능이 하나의 함수로 구현되어 있어서 한 줄로도 기능을 사용할 수 있고, 다양한 모듈들이 함수로 구혀되어 있어서 필요한 기능을 가져다 쓸 수 있다. 이 외에도 주기적으로 버그 및 새로운 기능들이 추가되고 관리되어 안정성이 높다고 본다. 하지만 편리하고 안정성이 좋은 만큼 유로로 라이센스를 구매하여 사용해야 한다. MIL ..
OpenCV 를 이용해 도형그리기(직선,원,타원) 오늘 해볼 것은 OpenCV를 이용해 도형을 그려볼 것입니다. 코랩을 이용하였습니다. 동심으로 돌아가 본인이 그림그리기 공부를 한다고 가정했을 때, 우선은 스케치북이 필요하겠죠 import cv2 import numpy as np import matplotlib.pyplot as plt %matplotlib inline from PIL import Image import requests from io import BytesIO from google.colab.patches import cv2_imshow img = np.zeros((512,512,3), np.uint8) 그리고 plt로 출력결과를 보겠습니다. plt.imshow(img) plt.show() 직선의 파라미터설명 img 그림을 그릴 이미지 ..
opencv 이미지 출력시 색바뀜 오류 해결(기본) url로 다운받은 이미지를 cv2.imshow(코랩인 경우 from google.colab.patches import cv2_imshow) 할 경우 아래 사진과 같은 다른 색상이 나타나게 된다. 이 문제는 numpy형식인 원본은 matplot으로 보여줄 때 기본적으로 알고 있는RGB 형식으로 보여주는데 cv2에서 보여주는 형식은 BGR의 형식으로 거의 반전(?)되서 보인다. 이럴 경우 두가지의 방법이 있는데, 가장 많이 쓰이는 방법은 image = cv2.cvtColor(pic_arr, cv2.COLOR_RGB2BGR) 를 이용하면 된다. 코드를 설명하자면 cv2.cvtColor를 이용하여 원본사진인 pic_arr의 배열 RGB를 BGR형식으로 바꿔주는 구문이다. 그리고 image를 cv2_show(cv..