Computer Vision/opencv(python)

[05] openCV-Python 기초 사용법 1) 영상의 속성과 픽셀 값 참조

jwjwvison 2021. 3. 11. 23:55
  • OpenCV는 영상 데이터를 numpy.ndarray로 표현

 

  • OpenCV 영상 데이터 자료형과 NumPy 자료형

 

  • 영상의 속성 참조 예제
import sys
import cv2

img1=cv2.imread('cat.bmp',cv2.IMREAD_GRAYSCALE)
img2=cv2.imread('cat.bmp',cv2.IMREAD_COLOR)

if img1 is None or img2 is None:
    print('Image load failed')
    sys.exit()
 
print(type(img1))
print(img1.shape)
print(img2.shape)
print(img1.dtype)
print(img2.dtype)

h,w=img1.shape
print('w x h = {} x {}'.format(w,h))

h,w=img2.shape[:2]
print('w x h = {} x {}'.format(w,h))

if img1.ndim==2:
    print('img1 is a grayscale image')

x=20
y=10
p1=img1[y,x]   #행-열 순서로 쓰여지기 때문에
p2=img2[y,x]

print(p1,p2)     # img1의 [20,10] 위치에 있는 grayscale 값을 출력해줌
                 # img2의 BRG 값

'''
픽셀값에 대입도 가능하지만 실행속도가 매우 느리다
for y in range(h):
    for x in range(w):
        img1[y,x]=0
        img2[y,x]=(0,255,255)
'''

img1[:,:]=0
img2[:,:]=(0,255,255)

cv2.imshow('img1',img1)
cv2.imshow('img2',img2)
cv2.waitKey()