OpenCV - Malaria

psy4072·2022년 12월 8일
0
post-thumbnail

OpenCV

: 실시간 컴퓨터 비전을 목적으로 한 프로그래밍 라이브러리.
실시간 이미지 프로세싱에 중점을 둔 라이브러리

기능

  • 이미지의 기하학적 변환 : 변동, 이동 등

  • 형태 변형, 이미지 그라디언트, Edge Detection, 이미지 혼합, 윤곽선 찾기

  • 이미지 변환 : 푸리에 변환, 코사인 변환 이미지에서 개체 검색, 원 등의 감지, 이미지 분할

    RGB 값 이해

  • matplotlib의 imread() 로 파일을 읽어온다.

  • 읽어 온 파일을 출력해 보면 3개의 채널을 갖는 이미지 배열임을 확인해 볼 수 있음.

  • 행과 열의 수는 이미지의 세로, 가로 크기

  • 이렇게 불러온 이미지의 R, G, B

 myimg_path = 'myimg.jpeg'
 myimg = plt.imread(myimg_path)
 plt.imshow(myimg)
 # plt.axis('off') 축 제거 옵션

  • 이미지는 3개의 채널로 구성
  • 인덱스 번호 0, 1, 2 각각 R, G, B

✅ 0번 인덱스 채널

plt. imshow(myimg[:, ;, 0])

✅ 1번 인덱스 채널

plt. imshow(myimg[:, ;, 1])

✅ 2번 인덱스 채널

plt. imshow(myimg[:, ;, 2])

OpenCV 실습

  • OpenCV는 BGR을 사용하기 때문에 COLOR_BGR2RGB 을 통해 RGB 형태로 변환
  • 이미지 어플리케이션은 RGB를 사용하기 때문에 먼저 컬러를 변경해준다.
  • imread를 통해 이미지를 불러오면 배열형태가 된다
import cv2

img = cv2.imread(img_path, cv2.IMREAD_COLOR)
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
img.shape

✅ resize 로 이미지 크기 150X150 픽셀로 크기 변경

image_150x150 = cv2.resize(img, (150, 150)

plt.imshow(image_150x150, cmap='gray')
plt.axis('off')
plt.show()

✅ IMREAD_GRAYSCALE 을 통해 흑백 이미지로 변환

image = cv2.imread(img_path, cv2.IMREAD_GRAYSCALE)
plt.imshow(image, cmap='gray')
plt.axis('off')
plt.show()

✅ blur 을 통해 각 픽셀 주변의 50x50 커널 평균값으로 이미지를 블러

image_blurry = cv2.blur(image, (50, 50))
plt.imshow(image_blurry, cmap='gray')
plt.axis('off')
plt.show()

✅ 적응적 임계처리 적용
: 어떤 값보다 큰 값을 가진 픽셀을 흰색으로 만들고 작은 값을 가진 픽셀은 검은색으로 만드는 과정

max_output_value = 255
neighborhood_size = 99
subtract_from_mean = 10
image_binarized = cv2.adaptiveThreshold(image, max_output_value, 
										cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY,
                                         neighborhood_size, subtract_from_mean) 
plt.imshow(image_binarized, cmap="gray")
plt.axis("off")
plt.show()

profile
Ⓓ🅰️🅣🄰 ♡♥︎

0개의 댓글