๐Ÿ˜Ž ๊ณต๋ถ€ํ•˜๋Š” ์ง•์ง•์•ŒํŒŒ์นด๋Š” ์ฒ˜์Œ์ด์ง€?

OpenCV๋กœ ์ด๋ฏธ์ง€ ์Šฌ๋ผ์ด๋“œ์‡ผ ๋งŒ๋“ค๊ธฐ ๋ณธ๋ฌธ

๐Ÿ‘ฉ‍๐Ÿ’ป IoT (Embedded)/Image Processing

OpenCV๋กœ ์ด๋ฏธ์ง€ ์Šฌ๋ผ์ด๋“œ์‡ผ ๋งŒ๋“ค๊ธฐ

์ง•์ง•์•ŒํŒŒ์นด 2022. 10. 20. 15:21
728x90
๋ฐ˜์‘ํ˜•

221020 ์ž‘์„ฑ

<๋ณธ ๋ธ”๋กœ๊ทธ๋Š” redorangeyellowy๋‹˜์˜ ๋ธ”๋กœ๊ทธ๋ฅผ ์ฐธ๊ณ ํ•ด์„œ ๊ณต๋ถ€ํ•˜๋ฉฐ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค>

https://velog.io/@redorangeyellowy/ch01-Python-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-%EC%8B%A4%EC%A0%84-%EC%BD%94%EB%94%A9-%EC%9D%B4%EB%AF%B8%EC%A7%80-%EC%8A%AC%EB%9D%BC%EC%9D%B4%EB%93%9C%EC%87%BC

 

[ch01] Python ์‹œ์ž‘ํ•˜๊ธฐ - ์‹ค์ „ ์ฝ”๋”ฉ: ์ด๋ฏธ์ง€ ์Šฌ๋ผ์ด๋“œ์‡ผ

์ด๋ฏธ์ง€ ์Šฌ๋ผ์ด๋“œ์‡ผํŠน์ • ํด๋”์— ์žˆ๋Š” ๋ชจ๋“  ์ด๋ฏธ์ง€ ํŒŒ์ผ์„ ์ด์šฉํ•˜์—ฌ ์Šฌ๋ผ์ด๋“œ์‡ผ๋ฅผ ์ˆ˜ํ–‰๊ตฌํ˜„ํ•  ๊ธฐ๋ŠฅํŠน์ • ํด๋”์— ์žˆ๋Š” ์ด๋ฏธ์ง€ ํŒŒ์ผ ๋ชฉ๋ก ์ฝ๊ธฐ์ด๋ฏธ์ง€๋ฅผ ์ „์ฒด ํ™”๋ฉด์œผ๋กœ ์ถœ๋ ฅํ•˜๊ธฐ์ผ์ • ์‹œ๊ฐ„๋™์•ˆ ์ด๋ฏธ

velog.io

 

 

๐ŸŒœ ์ด๋ฏธ์ง€ ์Šฌ๋ผ์ด๋“œ์‡ผ

: ํŠน์ • ํด๋”์— ์žˆ๋Š” ๋ชจ๋“  ์ด๋ฏธ์ง€ ํŒŒ์ผ์„ ์ด์šฉํ•˜์—ฌ ์Šฌ๋ผ์ด๋“œ์‡ผ๋ฅผ ์ˆ˜ํ–‰

  • 1. ํŠน์ • ํด๋”์— ์žˆ๋Š” ์ด๋ฏธ์ง€ ํŒŒ์ผ ๋ชฉ๋ก ์ฝ๊ธฐ
# os.listdir()
import os
file_list = os.listdir('.\\images')
img_files = [file for file in file_list if file.endwith('.jpg')]

# glob.glob
import glob
img_files = glob.glob('.\\images\\*.jpg')
  • 2. ์ด๋ฏธ์ง€๋ฅผ ์ „์ฒด ํ™”๋ฉด์œผ๋กœ ์ถœ๋ ฅํ•˜๊ธฐ
    • cv2.WINDOW_NORMAL ์†์„ฑ์˜ ์ฐฝ์„ ๋งŒ๋“  ํ›„, cv2.setWindowProperty() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ „์ฒด ํ™”๋ฉด ์†์„ฑ์œผ๋กœ ๋ณ€๊ฒฝ
cv2.namedWindow('image', cv2.WINDOW_NORMAL)
cv2.setWindowProperty('image', cv2.WND_PROP_FULLSCREEN, cv2.WINDOW_FULLSCREEN)
  • 3. ์ผ์ • ์‹œ๊ฐ„๋™์•ˆ ์ด๋ฏธ์ง€๋ฅผ ํ™”๋ฉด์— ์ถœ๋ ฅํ•˜๊ณ  , ๋‹ค์Œ ์ด๋ฏธ์ง€๋กœ ๊ต์ฒดํ•˜๊ธฐ (๋ฌดํ•œ๋ฃจํ”„)
cnt = len(img_files)
idx = 0
While True:
    img = cv2.imread(img_files[idx])
    if img is None:
        print('Image load failed!')
        break
    cv2.imshow('image', img)
    if cv2.waitKey(1000) >= 0:
        break # ์ž„์˜์˜ ํ‚ค๊ฐ€ ๋ˆŒ๋ฆฌ๋ฉด ์Šฌ๋ผ์ด๋“œ ์ข…๋ฃŒ
    idx += 1
    if idx >= cnt:
        idx = 0
  • ์ „์ฒด์ฝ”๋“œ
import sys
import glob
import cv2

# images์— ์žˆ๋Š” ๋ชจ๋“  jpg ํŒŒ์ผ์„ img_files ๋ฆฌ์ŠคํŠธ์— ์ถ”๊ฐ€
img_files = glob.glob('./image/*.jpg')

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

cnt = len(img_files)
idx = 0
print(cnt)
while True:
    img = cv2.imread(img_files[idx])
    if img is None:
        print('Image load failed!')
        break
    cv2.imshow('image', img)
    if cv2.waitKey(1000) >= 0:
        break # ์ž„์˜์˜ ํ‚ค๊ฐ€ ๋ˆŒ๋ฆฌ๋ฉด ์Šฌ๋ผ์ด๋“œ ์ข…๋ฃŒ
    idx += 1
    if idx >= cnt:
        idx = 0

localhost_3390_ ์›๊ฒฉ ๋ฐ์Šคํฌํ†ฑ ์—ฐ๊ฒฐ 2022-10-20 15-19-00.mp4
12.53MB

 

 

 

 

728x90
๋ฐ˜์‘ํ˜•
Comments