opencv

OpenCV 이미지 연산 [ Python 데이터 분석과 이미지 처리 ]

코딩 코딩 코오딩 2021. 6. 17. 21:26
import cv2
image = cv2.imread('cat.jpg')

# 픽셀 수 및 이미지 크기 확인
print(image.shape)
print(image.size)

# 이미지 Numpy 객체의 특정 픽셀을 가리킵니다.
px = image[100, 100]

# B, G, R 순서로 출력됩니다.
# (단, Gray Scale인 경우에는 B, G, R로 구분되지 않습니다.)
print(px)

# R 값만 출력하기
print(px[2])
(448, 680, 3)
913920
[ 86 121 161]
161

 

 

import cv2
import matplotlib.pyplot as plt
import time

image = cv2.imread('cat.jpg')

start_time = time.time()
#하나의 픽셀들을 일일히 값을 바꿔주는 과정이다.
for i in range(0, 100):
    for j in range(0, 100): 
        image[i, j] = [255, 255, 255]
print("--- %s seconds ---" % (time.time() - start_time))

#아래와 같은 방식은 슬라이싱 연산을 이용하여 바꾸는 과정이다.
start_time = time.time()
image[0:100, 0:100] = [0, 0, 0]
print("--- %s seconds ---" % (time.time() - start_time))

plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
plt.show()

roi

 

 

import cv2
import matplotlib.pyplot as plt

image = cv2.imread('cat.jpg')

# Numpy Slicing: ROI 처리 가능
roi = image[200:350, 50:200]

# ROI 단위로 이미지 복사하기
image[0:150, 0:150] = roi

plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
plt.show()

 

 

import cv2
import matplotlib.pyplot as plt

image = cv2.imread('cat.jpg')
image[:, :, 2] = 0

plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
plt.show()

이건 한번도 안해 본것이다. bgr 이미지에서 r 값을 다 0으로 바꾸는 것을 진행해 보는 것이다.

반응형