import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
from PIL import Image
이미지를 jupyter notebook에 파일을 심기 위해 필요한 모듈을 불러줍니다
pic = Image.open('C:/Users/Owner/Desktop/Computer-Vision-with-Python/Computer-Vision-with-Python/DATA/00-puppy.jpg')
귀여운 댕댕이 사진이 있는 폴더의 경로를 image.open으로 불러옵니다
type(pic)
PIL.JpegImagePlugin.JpegImageFile
pic의 type은 이렇게 나옴. 이형식을 array로 변환해줍니다
pic_arr = np.asarray(pic)
pic_arr.shape
(1300,1950,3)
1300*1950픽셀, 3가지 컬러가 있다는 뜻임
plt.imshow(pic_arr)
배열을 하나의 이미지로 나타날수 있게, 배열로 바뀐 이미지로 보이게함
가로 세로 눈금도 표시됨
pic_red = pic_arr.copy()
데이터를 카피해줍니다. 우리는 초록색깔과 파랑색의 색도를 0으로 맞춰서 어떤 변화가 일어나는지 봅시다
pic_red[:,:,0]
첫번째 인덱스는 1300픽셀 전체, 두번째는 1950 픽셀 전체, 끝자리가 0이면 Red, 1이면 green 2면 blue를 의미한다.
이 셀의 결과는
이렇게 배열로 나오며, ahen 1과 255사이의 값을 띈다.
plt.imshow(pic_red[:,:,0],cmap='gray')
cmap은 색을 매핑하는 것이고, 이미지를 회색조로 보여준다.
색이 0이면 색이 아예 띄지 않아 완전한 검은색이 나오고, 255면 full color로 끝 인덱스가 0(red)이니 완전한 red를 의미한다. 회색으로 매핑했을 때 검은색이 아닌 하얀색을 띄므로 red가 있다는 뜻이다.
위에 사진을 보면 댕댕이 귓부분이 빨간 갈색? 이다
plt.imshow(pic_red[:,:,1],cmap='gray')
1이면 green으로 강아지 귀가 검은것을 알 수 있음, 실제 강쥐사진에 초록색조가 없다는 뜻이다.
plt.imshow(pic_red[:,:,2],cmap='gray')
2면 blue로 위의 초록색보다 강쥐귀가 더 어두운색이다.
pic_red[:,:,1] = 0
1에서 255값을 모두 0으로 나와 초록색조를 제거함
plt.imshow(pic_red)
초록색이 제거되어서 파랑과 빨강만 남음, 둘이 섞이면 보라색이 되기 때문에 댕댕이가 보라색 댕댕이가 되었다
pic_red[:,:,2]=0
plt.imshow(pic_red)
파란색까지 0으로 없애버렸다. R만 남게 되어 댕댕이가 빨간 댕댕이가 되었다
pic_red.shape
(1300,1950,3)
shape을 돌려보면 여전히 3개의 색조가 존재한다.
pic_red[:,:,1].shape
(1300,1950)
하나의 색조뿐인것을 알 수 있음 숫자바뀌어도 shape가 같다.
인덱싱 없이 하면 사진은 여전히 3개의 색깔 정보를 가지고 있음, 우리가 앞에서 초록 파랑을 0으로 했기 때문이다.
출처: udemy x KMOOC openCV 딥러닝을 이용한 computer vision 파이썬
'Deep Learning > Computer Vision' 카테고리의 다른 글
Gradients (0) | 2023.07.16 |
---|---|
Image Blurring & Smoothing (0) | 2023.07.16 |
Image Binary (0) | 2023.07.16 |
파이썬 마우스로 이미지에 직접 그리기 (0) | 2023.07.09 |
파이썬 이미지에 도형 그리기 (0) | 2023.07.09 |