import cv2
img =cv2.imread('./data/pets.jpg')
cv2.imshow('pets',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.imshow('pets',img) -> 윈도우 창을 띄워서 이미지를 보여주는 것이 기본
cv2.waitKey(0) -> 0 : 무한대기, ms단위로 대기 시간 설정
cv2.destroyAllWindows() -> 키가 입력되면 모든 윈도우 창 닫기
cv2 자체가 가지고 있는 이미지 출력기능
imread(경로, 읽어내는 방식)
img_color = cv2.imread('./data/pets.jpg', cv2.IMREAD_COLOR) img_gray = cv2.imread('./data/pets.jpg', cv2.IMREAD_GRAYSCALE) img_unchaged = cv2.imread('./data/pets.jpg', cv2.IMREAD_UNCHANGED)
이미지 출력
cv2.imshow("color", img_color) cv2.imshow("gray", img_gray) cv2.imshow("unchaged", img_unchaged) cv2.waitKey(0) cv2.destroyAllWindows()
cv2.waitKey(0) -> 0 : 무한대기, ms단위로 대기 시간 설정
cv2.destroyAllWindows() -> 키가 입력되면 모든 윈도우 창 닫기
이미지 크기(모양)확인
print("color : ", img_color.shape)
print("gray : ", img_gray.shape)
print("unchaged : ", img_unchaged.shape)
출력 값:
color : (427, 640, 3)
gray : (427, 640)
unchaged : (427, 640, 3)
import cv2
import matplotlib.pyplot as plt
1. 이미지 경로 불러오기
img = cv2.imread('./data/pets.jpg', cv2.IMREAD_COLOR) img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) plt.imshow(img)
흑백이미지로 읽어내보기
img = cv2.imread('./data/pets.jpg', cv2.IMREAD_COLOR) img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) plt.imshow(img, cmap='gray')
이미지 이진화
img = cv2.imread('./data/ryan.jpg', cv2.IMREAD_GRAYSCALE)
이진화 -> cv2.threshold(대상, 임계값(기준값), 값, 이진화 종류(처리방식))
_,img_thr = cv2.threshold(img, 100, 255, cv2.THRESH_BINARY)
plt.subplot(행, 열, 순서)
plt.subplot(1,3,1) plt.axis('off') # 축 표시 안되게 설정 plt.imshow(img, cmap='gray') plt.subplot(1,3,2) plt.imshow(img_thr, cmap='gray')
- 자동으로 임계값을 찾아주는 기능 적용하기 : Otsu(오츠)의 이진화
이미지 이진화
img = cv2.imread('./data/ryan.jpg', cv2.IMREAD_GRAYSCALE)
이진화 -> cv2.threshold(대상, 임계값(기준값), 값, 이진화 종류(처리방식))
_,img_thr = cv2.threshold(img, 100, 255, cv2.THRESH_BINARY) # gray scale이 100이상인 것은 흰색(255)으로 th_val,img_thr2 = cv2.threshold(img, 0, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU) # 자동으로 최적 임계값을 선택하는 알고리즘
plt.subplot(행, 열, 순서)
plt.subplot(1,3,1) plt.title(f'original') plt.axis('off') # 축 표시 안되게 설정 plt.imshow(img, cmap='gray')plt.subplot(1,3,2) plt.title(f'thres: 100') plt.axis('off') plt.imshow(img_thr, cmap='gray')plt.subplot(1,3,3) plt.title(f'otsu:{th_val}') plt.axis('off') plt.imshow(img_thr2, cmap='gray')