카테고리

분류 전체보기 (68)
JAVA-기본 (7)
JAVA-AWT (24)
JAVA-클래스의 중요메소드 (23)
JAVA-람다식 (0)
Android Studio (7)
Python (1)
OpenCV (1)
AWS (0)
webrtc (0)
javascript (4)
처리방침 (1)
rss 아이콘 이미지

01. openCV 이미지 출력 및 색상 변경

OpenCV/기본 2023. 1. 15. 15:45 Posted by IT-개발자
반응형

이번 시간에는 openCV에서 가자 기본인 이미지를 출력해보도록 하겠습니다.

openCV를 이용하여 기존 이미지를 출력함과 동시에 아래 이미지를 흑백으로 보여주도록 하겠습니다.

https://pixabay.com/illustrations/dog-sitting-mascot-tamed-brown-5188108/

 

<이미지 및 흑백 보여주기>

import sys
import cv2

img = cv2.imread('dog.png', cv2.IMREAD_COLOR)
gray_img =  cv2.imread('dog.png', cv2.IMREAD_GRAYSCALE)
cv2.imwrite('dog_gray.png',img)

if img is None:
    print('Image load failed!')
    sys.exit()    #이미지가 없는 경우 프로그램을 종료
cv2.namedWindow('basic_dog', cv2.WINDOW_NORMAL)
cv2.namedWindow('gray_dog', cv2.WINDOW_NORMAL)
cv2.resizeWindow('basic_dog', 500, 500)
cv2.resizeWindow('gray_dog', 500, 500)

cv2.imshow('basic_dog',img) # basic_dog 라는 제목으로 이미지 화면에 보여주기
cv2.imshow('gray_dog',gray_img) # gray_dog 라는 제목으로 이미지 화면에 보여주기
cv2.waitKey(0) #어떤 키가 입력될때까지 대기
cv2.destroyAllWindows() #모든 창 닫기

 

 

<이미지 색상 변경>

import sys
import cv2

img = cv2.imread('dog.png')
gray_dog1 =  cv2.imread('dog.png', cv2.IMREAD_GRAYSCALE)
gray_dog2 = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

if img is None:
    print('Image load failed!')
    sys.exit()    #이미지가 없는 경우 프로그램을 종료
cv2.namedWindow('gray_dog1', cv2.WINDOW_NORMAL)
cv2.namedWindow('gray_dog2', cv2.WINDOW_NORMAL)
cv2.resizeWindow('gray_dog1', 500, 500)
cv2.resizeWindow('gray_dog2', 500, 500)

cv2.imshow('gray_dog1',gray_dog1)
cv2.imshow('gray_dog2',gray_dog2)
cv2.waitKey(0) #어떤 키가 입력될때까지 대기
cv2.destroyAllWindows() #모든 창 닫기

여기서 각 함수를 알아보도록 하겠습니다.

 

cv2.IMREAD_COLOR : 별도로 지정하지 않을 경우 사용되는 기본값이며 칼라 이미지로 읽어드림. 이미지의 투명도값은 무시된다.
cv2.IMREAD_GRAYSCALE : 이미지를 Grayscale로 읽는다
cv2.IMREAD_UNCHANGED : 투명도인 Alpha 채널을 포함하여 읽는다.

 

cvtColor 는 색상을 바꾸는 것으로
cv2.COLOR_BGR2GRAY는 색상 이미지를 회색조 이미지로 변환합니다.
 
 
 
 
다음은 실제 카메라를 연결하고 색상을 바꿔 보도록 하겠습니다.
<카메라 연결을 통한 색상 변경>
import numpy as np
import cv2

cap = cv2.VideoCapture(0) #video 연결된 디바이스 중 첫번째를 가지고 온다.

while(True):
    ret, frame = cap.read()     #   비디오 값이 정상적이면 ret은 True/ cap.read을 통해 frame을 연속적으로 읽는다.

    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    cv2.imshow('video', frame)          #   연속적으로 frame을 출력하여 보여준다.
    cv2.imshow('gray', gray)            #   기본 영상을 gray로 변환.

    if cv2.waitKey() == ord('q'):   #   키보드 q가 나오면 종료.
        break

cap.release()   # 종료이므로 video 객체 cap을 없앤다.
cv2.destroyAllWindows() # 종료

자료가 마음에 드셨다면 자주 찾아주세요^^ 글 올리는데 힘이됩니다.

반응형