#실습
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('images/checkerboard_18x18.png', cv2.IMREAD_GRAYSCALE)
plt.xticks([])
plt.yticks([])
plt.imshow(img, cmap='gray')
print(img)
#실습
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('images/checkerboard_fuzzy_18x18.jpg', cv2.IMREAD_GRAYSCALE)
plt.xticks([])
plt.yticks([])
plt.imshow(img, cmap='gray')
#실습
print(img)
#실습
import cv2
img = cv2.imread('images/coca-cola-logo.png')
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.xticks([])
plt.yticks([])
plt.imshow(img)
#실습
px = img[200, 100]
print(px)
[199 4 21]
#실습
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('images/coca-cola-logo.png')
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# 이미지 명 (행/열) -> 반복문을 만들어보자
for x in range(200, 401) :
for y in range(200, 401) :
# 픽셀값 파란색으로 변경
img[x,y]=[0, 0, 255]
plt.xticks([])
plt.yticks([])
plt.imshow(img)
img.shape
# 픽셀하나에는 3가지 색이 겹쳐 있음으로!
(700, 700, 3)
이미지 채널
#실습
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('./images/New_Zealand_Lake.jpg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# 이미지를 채널별로 분리
r = img[ : , :, 0]
g = img[ : , :, 1]
b = img[ : , :, 2]
# 그래프 제작
plt.figure(figsize=(10,5))
plt.subplot(1,3,1)
plt.xticks([])
plt.yticks([])
plt. title('red channel')
plt.imshow(r, cmap='gray')
plt.subplot(1,3,2)
plt.xticks([])
plt.yticks([])
plt. title('red channel')
plt.imshow(g, cmap='gray')
plt.subplot(1,3,3)
plt.xticks([])
plt.yticks([])
plt. title('red channel')
plt.imshow(b, cmap='gray')
#실습
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('./images/New_Zealand_Lake.jpg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# 이미지를 채널별로 분리
r = img[ : , :, 0]
g = img[ : , :, 1]
b = img[ : , :, 2]
# RGB 채널을 합치기
merge_img = cv2.merge((r,g,b))
plt.xticks([])
plt.yticks([])
plt.imshow(merge_img)
plt.show()
#실습
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('images/coca-cola-logo.png')
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# 이미지 명 (행/열) -> 반복문을 만들어보자
for x in range(200, 401) :
for y in range(200, 401) :
# 0번 채널(red)의 픽셀을 0으로 설정
img.itemset((x, y, 0), 0)
plt.xticks([])
plt.yticks([])
plt.imshow(img)
img.shape : 이미지의 크기 및 채널
img.size : 이미지의 전체 픽셀 수
img.dtype : 데이터 타입
#실습
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('images/coca-cola-logo.png')
print(img.shape)
print(img.size)
print(img.dtype)
(700, 700, 3)
1470000
uint8
○ 이미지 처리 방법 : 픽셀기반, 블록기반, 주파수 기반 처리
○ 이미지의 픽셀값은 0-255 사이 값으로 구성 (8bit 양의 정수 형태) - 검정색은 0, 흰색은 255
○ 픽셀값은 3차원 배열 형태로 접근 ([x축, y축, 채널])
○ itemset((x축, y축, 채널), 값) : 해당 채널의 픽셀값을 변경
○ img.shape : 이미지 크기
○ img.size : 전체 픽셀 수
○ img.dtype : 데이터 타입