본문 바로가기
공부(연습문제 정답)/컴퓨터 비전과 딥러닝

[3장] 컴퓨터 비전과 딥러닝 : 영상처리

by lovedeveloping 2024. 9. 19.
반응형
컴퓨터 비전과 딥러닝
컴퓨터 비전과 딥러닝

이번 시간에는 3장 연습문제에 대해 문제와 풀이에 대한 게시글을 작성해보겠습니다. 3장은 수학 문제 풀이보다 자신의 생각에 대해 작성하는 게 더 많은 것 같습니다. 바로 시작하시죠

Chapter 03 영상 처리

01 [그림 3-5]는 다양한 형태의 영상을 예시한다. 다음 영상이 차지하는 메모리 양을 바이트 단위로 제시한다. (1) ~ (4)에서는 한 채널을 구성하는 화소 하나가 8비트(1바이트)로 표현된다고 가정한다.

  1. 512 x 512 컬러 영상
    정답: {(512 x 512) x 24} / 8 = 786,432 Byte = 0.786MB
  2. 30초 분량의 256 x 256 컬러 동영상 (30FPS 를 가정)
    정답: [{(256 x 256) x 24} / 8] x (30 x 30) = 176,947,200 Byte = 176.7MB
    풀이: 앞에 30은 초(minutes), 뒤에 30은 FPS
  3. 256 x 256 x 128 CT 영상 = 16.8MB
    정답: {(256 x 256 x 128) x 16} / 8 = 16,777,216 Byte = 16.8MB
  4. 512 x 512 크기의 8채널 다분광 영상
    정답: {(512 x 512) x (8 x 8)} / 8 = 2,097,152 Byte = 2.1MB
  5. 20,000개 점으로 구성된 점 구름 영상(한 점은 x, y, z 좌표로 표현되는데 x, y, z는 각각 4바이트 실수로 표현
    정답: 20,000 x (3 x 4) = 240,000 Byte = 240 KB

02 [그림 3-13(a)]의 입력 영상에 대해 다음 구조 요소를 이용해 팽창한 영상과 침식한 영상을 제시하시오.
 
팽창: 구조 요소의 중심을 1인 화소에 씌운 다음 구조 요소에 해당하는 모든 화소를 1로 바꾼다.

00010000팽창
01111100
01111110
01101110

침식: 구조 요소의 중심을 1인 화소 p에 씌운 다음 구조 요소에 해당하는 모든 화소가 1인 경우에 p를 1로 유지하고 그렇지 않으면 0으로 바꾼다.

00000000침식
00000000
00010000
01101100

 
03 다음 5 x 5 영상에 대해 히스토그램 평활화를 수행하시오. [예시 3-4]의 표와 [그림 3-15]를 제시하시오.

00113
23333
33444
43457
44457

 
정답:

Ihh'h''h'' x 7I'설명
020.080.080.561h' = (I의 개수 / 전체 h) * 100
h'' = h'의 누적 값
I' = (h'' x 7)의 반올림 값
120.080.161.121
210.040.201.401
380.320.523.644
480.320.845.886
520.080.926.446
720.081.007.007

 
04 [그림 3-16(b)]의 원래 영상 f에 다음 필터를 적용한 결과 영상 f'를 제시하시오. 각 필터의 효과에 대해 기술하시오.

(1)-1-1-1(2)0-10(3)-100
000-14-1000
1110-10001

정답:
(1) : 0,  (2) : -2,  (3) : 2
스무딩 필터 : 어떤 점의 값이 주위에 비해 아주 낮을 때 자신은 커지고 주위는 작아져서 잡음을 누그러뜨리는 효과를 발휘한다.
샤프닝 필터: 에지를 선명하게 해서 물체의 식별을 돕는 작용하는 데, 부작용으로 잡음을 확대한다.
엠보싱 필터: 물체에 돋을새김 느낌을 준다.
 
05 [예시 3-5]에서 나머지 점 3개에 대한 계산 과정을 제시하시오. (P.107)

  1. P2 = (1,4,1)  =>  P2'T = [3,3,1] => P2''T =>  [(0.8660 x 3),(0.5000 x 4),(0 x 1)]
  2. P3 = (2,3,1) =>  P3'T = [4,2,1] => P3''T =>  [(0.8660 x 4),(0.5000 x 2),(0 x 1)]
  3. P4 = (2,4,1) =>  P4'T = [4,3,1] => P4''T =>  [(0.8660 x 4),(0.5000 x 3),(0 x 1)]

06 [그림 3-18]의 1차원과 2차원 가우시안 함수를 그리는 파이썬 프로그램을 작성하시오.
정답: 1 / (sigma * np.sqrt(2*np.pi)) * np.exp(-(x-mu)**2 / (2*sigma **2))
 
07 [그림 3-7]의 10행은 필터 크기를 5x5, 9x9, 15x15로 바꾸어가며 가우시안 스무딩을 적용한다. 같은 크기의 필터로
메디안 스무딩을 추가로 적용해 가우시안 스무딩과 메디안 스무딩 결과를 서로 다른 윈도우에 디스플레이하시오. 두 스무딩 기법의 원리를
설명하고,  효과 측면에서 어떻게 다른지 설명하시오.

import cv2 as cv
import numpy as np

img = cv.imread('/Users/sinecure_sheeep/PycharmProjects/studyDeepLearning/img/horse.jpeg')
img = cv.resize(img, dsize=(0,0), fx=0.4, fy=0.4)
gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
cv.putText(gray, 'horse', (10,20), cv.FONT_HERSHEY_SIMPLEX, 0.7,(255,255,255),2)

smooth = np.hstack((cv.GaussianBlur(gray,(5,5),0,0), cv.GaussianBlur(gray,(9,9),0,0), cv.GaussianBlur(gray,(15,15),0,0)))
median = np.hstack((cv.medianBlur(gray,5,0),cv.medianBlur(gray,9,0),cv.medianBlur(gray,15,0)))

cv.imshow('Smooth', smooth)
cv.imshow('Median', median)

cv.waitKey()
cv.destroyAllWindows()

 

반응형