1. 왜 의료 영상 처리에 OpenCV인가?
Colab 환경에서의 영상 출력
PC 환경과 달리 Colab에서는 cv2.imshow() 사용 시 에러가 발생하거나 창이 뜨지 않을 수 있다. 이를 해결하기 위해 Colab 전용 패치 모듈을 사용해야 한다.
[PC 환경 코드]
Python
cv2.imshow(wn+' img', t_img)
cv2.moveWindow(wn+' img', 20, 0)
cv2.waitKey(0)
[Colab 환경 수정 코드]
Python
from google.colab.patches import cv2_imshow
cv2_imshow(t_img)
2. 문자 및 사각형 등을 영상에 그리기
의료 영상에서 병변 의심 부위를 표시하거나 텍스트 정보를 입력할 때 사용하는 기본 그리기 함수들이다.
Python
# -*- coding: utf-8 -*-
import cv2
# 영상 읽기 (2번째 인수가 없으면 color 형으로 read)
image = cv2.imread("chest.bmp")
color = (0, 255, 0) # green, BGR
# 1. 이미지에 문자 출력: 문자열, 위치, 크기, 색, 두께
cv2.putText(image, "test", (0, 100), cv2.FONT_HERSHEY_SIMPLEX, 1., color, 1)
# 2. 이미지에 사각형 출력: 시작위치, 종료위치, 색, 두께
cv2.rectangle(image, (100, 100), (500, 500), color, 2)
# 3. 이미지에 원 출력 : 중심위치, 반지름, 색, 두께
cv2.circle(image, (400, 400), 100, (0, 0, 255), 1)
from google.colab.patches import cv2_imshow
cv2_imshow(image)

3. 영상에 가이드라인 그리기 (Annotation)
분석하려는 특정 부위를 강조하기 위해 문자열, 사각형, 원 등을 그릴 수 있습니다.
- 문자 출력: cv2.putText(영상, "내용", 위치, 폰트, 크기, 색상, 두께)
- 사각형: cv2.rectangle(영상, 시작점, 종료점, 색상, 두께)
- 원: cv2.circle(영상, 중심점, 반지름, 색상, 두께)
1.3 영상의 scan 값 그리기
영상의 픽셀 강도(Intensity) 변화를 그래프로 확인하여 데이터의 분포를 분석합니다.
Python
# -*- coding: utf-8 -*-
import cv2
import matplotlib.pyplot as plt
import numpy as np
# 영상을 Grayscale로 읽기
image = cv2.imread("chest.bmp", cv2.IMREAD_GRAYSCALE)
from google.colab.patches import cv2_imshow
cv2_imshow(image)
# 영상 크기 정보 가져오기
h = image.shape[0]
w = image.shape[1]
t = np.arange(w)
# 첫 번째 scan 값 (가운데 라인 값 가져오기)
scan = image[int(h/2), :]
# 가운데 라인에서 +10 픽셀 아래 라인 값 가져오기
scan2 = image[int(h/2)+10, :]
# 그래프 출력
plt.plot(t, scan)
plt.plot(t, scan2)
plt.show()

'영상처리' 카테고리의 다른 글
| Part 6 : Gabor 및 가우시안 필터 (0) | 2026.02.25 |
|---|---|
| Part 5: 히스토그램 분석부터 다중 주파수 선명화까지 (0) | 2026.02.25 |
| Part 4 : Sigmoid 함수 변환 (0) | 2026.02.25 |
| Part 3 : 영상 이진화와 멱함수 변환 (0) | 2026.02.25 |
| Part 2 : Numpy Indexing을 이용한 영상 생성 (0) | 2026.02.25 |