LiJell's 성장기

02. OpenCV_Intro_Review + α (2편) 본문

Bigdata/OpenCV

02. OpenCV_Intro_Review + α (2편)

All_is_LiJell 2022. 1. 25. 18:11
반응형

 

02_OpenCV.zip
6.53MB

 

 

2022.01.25 - [Bigdata/OpenCV] - 03. OpenCV_Basic (3편)

2022.01.24 - [Bigdata/OpenCV] - 01. OpenCV_Intro (1편)

 

01. OpenCV_Intro (1편)

2022.01.27 - [Bigdata/OpenCV] - 07. OpenCV Point Processing 2022.01.27 - [Bigdata/OpenCV] - 06. OpenCV 키보드 마우스 이벤트 처리 2022.01.26 - [Bigdata/OpenCV] - 05. OpenCV Basic 두번째 (5편) 2022.01..

lime-jelly.tistory.com

 

03. OpenCV_Basic (3편)

2022.01.26 - [Bigdata/OpenCV] - 05. OpenCV Basic 두번째 (5편) 2022.01.25 - [Bigdata/OpenCV] - 03. OpenCV_Basic (3편) 2022.01.24 - [Bigdata/OpenCV] - 01. OpenCV_Intro (1편) 01. OpenCV_Intro (1편) 202..

lime-jelly.tistory.com

 

2. OpenCV Intro Review + α

import numpy as np
import cv2
import sys

cv2.__version__
'''
'4.5.5'
'''

2.1. 파일 불러오기

2.1.1. COLOR

img = cv2.imread('./Ch_1_Opencv_Intro/fig/puppy.bmp', cv2.IMREAD_COLOR)

if img is None:
    print('read failed')
    sys.exit()

cv2.namedWindow('image')
cv2.imshow('image', img) # image에 뭐를? img 파일을 


while True:
    if cv2.waitKey() == 27:
        break


cv2.destroyAllWindows()

2.1.2. GRAYSCALE

img = cv2.imread('./Ch_1_Opencv_Intro/fig/puppy.bmp', cv2.IMREAD_GRAYSCALE)

if img is None:
    print('read failed')
    sys.exit()

cv2.namedWindow('image')
cv2.imshow('image', img) # image에 뭐를? img 파일을 


while True:
    if cv2.waitKey() == 27:
        break


cv2.destroyAllWindows()

2.2. 사이즈 줄이기

2.2.1. 파일 읽을 때 줄이기

img = cv2.imread('./Ch_1_Opencv_Intro/fig/puppy.bmp',
                 cv2.IMREAD_REDUCED_COLOR_2) # 사이즈 줄일 때

if img is None:
    print('read failed')
    sys.exit()

cv2.namedWindow('image')
cv2.imshow('image', img) # image에 뭐를? img 파일을 


while True:
    if cv2.waitKey() == 27:
        break


cv2.destroyAllWindows()

2.2.2. 파일 읽고 나서 나중에 줄이기

img = cv2.imread('./Ch_1_Opencv_Intro/fig/puppy.bmp', cv2.IMREAD_COLOR)


img_small = cv2.resize(img, (200, 100), interpolation = cv2.INTER_AREA)

if img is None:
    print('read failed')
    sys.exit()

cv2.namedWindow('image')
cv2.namedWindow('image_small')
cv2.imshow('image', img)
cv2.imshow('image_small', img_small) # image에 뭐를? img 파일을 


while True:
    if cv2.waitKey() == 27:
        break


cv2.destroyAllWindows()
img = cv2.imread('./Ch_1_Opencv_Intro/fig/puppy.bmp', cv2.IMREAD_COLOR)


img_small = cv2.resize(img, (w//2, h//2), interpolation = cv2.INTER_AREA)
cv2.imwirte('./Ch_1_Opencv_Intro/fig/puppy_small.png', img_small)

if img is None:
    print('read failed')
    sys.exit()


cv2.imshow('image', img)
cv2.imshow('image_small', img_small) # image에 뭐를? img 파일을 


while True:
    if cv2.waitKey() == 27:
        break


cv2.destroyAllWindows()

2.3. 윈도우 창 위치 옮기기

img = cv2.imread('./Ch_1_Opencv_Intro/fig/puppy.bmp', cv2.IMREAD_COLOR)


# img_small = cv2.resize(img, (200, 100), interpolation = cv2.INTER_AREA)

if img is None:
    print('read failed')
    sys.exit()

cv2.namedWindow('image', cv2.WINDOW_NORMAL)
cv2.moveWindow('image', 200,0) # 맨 왼쪽 위가 0,0 기준

cv2.imshow('image', img)



while True:
    key =cv2.waitKey()
    if key == ord('x') or key == 27:
        break


cv2.destroyAllWindows()

2.4. matplotlib로 불러오기

import matplotlib.pyplot as plt

imgBGR = cv2.imread('./Ch_1_Opencv_Intro/fig/cat.bmp', cv2.IMREAD_COLOR)
imgRGB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # BGR 2 RGB
imgGRAY = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

if img is None:
    print('read failed')
    sys.exit()

plt.figure(figsize=(12,6))

plt.subplot(131), plt.imshow(imgBGR), plt.axis('off') # 1행 3열에서 첫번째
plt.subplot(132), plt.imshow(imgRGB), plt.axis('off')
plt.subplot(133), plt.imshow(imgGRAY, cmap = 'gray'), plt.axis('off')
plt.show()

# cv2.imshow('image', img_gray)

# cv2.waitKey()

# cv2.destroyAllWindows()

2.5. 폴더 한번에 불러와서 루프 돌리기

import numpy as np
import cv2
import sys
import os
img_lists = os.listdir('./Ch_1_Opencv_Intro/fig/images/')
img_lists
'''
['autumn_forest_park_128379_1920x1080.jpg',
 'boat_mountains_lake_135258_1920x1080.jpg',
 'forest_fog_trees_128751_1920x1080.jpg',
 'pier_dock_sea_dusk_shore_118549_1920x1080.jpg',
 'road_marking_evening_clouds_horizon_120298_1920x1080.jpg']
'''

img_lists_path = []

for i in img_lists:
    img_list = './Ch_1_Opencv_Intro/fig/images/'+ i
    img_lists_path.append(img_list)

cv2.namedWindow('image', cv2.WINDOW_NORMAL)
cv2.setWindowProperty('image', cv2.WND_PROP_FULLSCREEN,
                     cv2.WINDOW_FULLSCREEN)

idx = 0
while True:
    img_path = img_lists_path[idx]
    img = cv2.imread(img_path)

    cv2.imshow('image', img)

    if cv2.waitKey(3000) == 27:
        break


    idx += 1

    if idx >= len(img_lists_path):
        idx = 0

cv2.destroyAllWindows()

2.6. 다른 방법으로 폴더 파일 불러오기

import glob

img_lists = glob.glob('./Ch_1_Opencv_Intro/fig/images/*.*') # * 모든 파일의 * 모든 형식
print(img_lists)
cv2.namedWindow('image', cv2.WINDOW_NORMAL)
cv2.setWindowProperty('image', cv2.WND_PROP_FULLSCREEN,
                     cv2.WINDOW_FULLSCREEN)

idx = 0
while True:
    img_path = img_lists[idx]
    img = cv2.imread(img_path)

    cv2.imshow('image', img)

    if cv2.waitKey(3000) == 27:
        break


    idx += 1

    if idx >= len(img_lists_path):
        idx = 0

cv2.destroyAllWindows()
반응형

'Bigdata > OpenCV' 카테고리의 다른 글

06. OpenCV 키보드 마우스 이벤트 처리 (6편)  (0) 2022.01.27
05. OpenCV Basic 두번째 (5편)  (0) 2022.01.26
04. OpenCV Basic Review + α (4편)  (0) 2022.01.26
03. OpenCV_Basic (3편)  (0) 2022.01.25
01. OpenCV_Intro (1편)  (0) 2022.01.24
Comments