본문 바로가기
Data Analysis/Data Analysis & Image Processing

6. OpenCV 이미지 연산

by SeleniumBindingProtein 2022. 4. 7.
728x90
반응형
#OpenCV를 활용한 이미지 크기 및 픽셀 정보 확인

import cv2
image = cv2.imread('cat2.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])

(224, 225, 3)
151200
[ 0 16 31]
31

#OpenCV를 활용한 특정 범위 픽셀 변경
import cv2
import matplotlib.pyplot as plt
import time 

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

start_time = time.time()
for i in range(0, 80):
    for j in range(0, 80):
        image[i, j] = [255, 255, 255]
print("--- %s seconds ---" % (time.time() - start_time))

#slicing 연산 
start_time = time.time()
image[0:80, 0:80] = [0, 0, 0]
print("--- %s seconds ---" % (time.time() - start_time))

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

--- 0.014579057693481445 seconds ---
--- 0.00037288665771484375 seconds ---

#OpenCV를 활용한 ROI(Region of Interest: 관심 있는 영역) 추출

import cv2
import matplotlib.pyplot as plt

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

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

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

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

#OpenCV를 활용한 픽셀별 색상 다루기

import cv2
import matplotlib.pyplot as plt

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

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

import cv2
image = cv2.imread('cat2.jpg')

#특정 색상만 보여주기(0:Blue, 1:Green, 2:Red)
cv2.imshow('cat2', image[:, :, 0])
cv2.waitKey(0)

#특정 색상만 제거하기
image[:,:,2]=0
cv2.imshow('cat2', cat2)
cv2.waitKey(0)
728x90
반응형

'Data Analysis > Data Analysis & Image Processing' 카테고리의 다른 글

8. OpenCV Tracker  (0) 2022.04.16
7. OpenCV 임계점 처리하기  (0) 2022.04.07
5. OpenCV 이미지 변형  (0) 2022.04.07
4. OpenCV 기본 사용법  (0) 2022.04.07
3. Numpy 기본 연산 및 활용(2)  (0) 2022.04.07

댓글