이번 시간에는 3장 연습문제에 대해 문제와 풀이에 대한 게시글을 작성해보겠습니다. 3장은 수학 문제 풀이보다 자신의 생각에 대해 작성하는 게 더 많은 것 같습니다. 바로 시작하시죠
Chapter 03 영상 처리
01 [그림 3-5]는 다양한 형태의 영상을 예시한다. 다음 영상이 차지하는 메모리 양을 바이트 단위로 제시한다. (1) ~ (4)에서는 한 채널을 구성하는 화소 하나가 8비트(1바이트)로 표현된다고 가정한다.
- 512 x 512 컬러 영상
정답: {(512 x 512) x 24} / 8 = 786,432 Byte = 0.786MB - 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 - 256 x 256 x 128 CT 영상 = 16.8MB
정답: {(256 x 256 x 128) x 16} / 8 = 16,777,216 Byte = 16.8MB - 512 x 512 크기의 8채널 다분광 영상
정답: {(512 x 512) x (8 x 8)} / 8 = 2,097,152 Byte = 2.1MB - 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로 바꾼다.
0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 팽창 |
0 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | |
0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | |
0 | 1 | 1 | 0 | 1 | 1 | 1 | 0 |
침식: 구조 요소의 중심을 1인 화소 p에 씌운 다음 구조 요소에 해당하는 모든 화소가 1인 경우에 p를 1로 유지하고 그렇지 않으면 0으로 바꾼다.
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 침식 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | |
0 | 1 | 1 | 0 | 1 | 1 | 0 | 0 |
03 다음 5 x 5 영상에 대해 히스토그램 평활화를 수행하시오. [예시 3-4]의 표와 [그림 3-15]를 제시하시오.
0 | 0 | 1 | 1 | 3 |
2 | 3 | 3 | 3 | 3 |
3 | 3 | 4 | 4 | 4 |
4 | 3 | 4 | 5 | 7 |
4 | 4 | 4 | 5 | 7 |
정답:
I | h | h' | h'' | h'' x 7 | I' | 설명 |
0 | 2 | 0.08 | 0.08 | 0.56 | 1 | h' = (I의 개수 / 전체 h) * 100 h'' = h'의 누적 값 I' = (h'' x 7)의 반올림 값 |
1 | 2 | 0.08 | 0.16 | 1.12 | 1 | |
2 | 1 | 0.04 | 0.20 | 1.40 | 1 | |
3 | 8 | 0.32 | 0.52 | 3.64 | 4 | |
4 | 8 | 0.32 | 0.84 | 5.88 | 6 | |
5 | 2 | 0.08 | 0.92 | 6.44 | 6 | |
7 | 2 | 0.08 | 1.00 | 7.00 | 7 |
04 [그림 3-16(b)]의 원래 영상 f에 다음 필터를 적용한 결과 영상 f'를 제시하시오. 각 필터의 효과에 대해 기술하시오.
(1) | -1 | -1 | -1 | (2) | 0 | -1 | 0 | (3) | -1 | 0 | 0 |
0 | 0 | 0 | -1 | 4 | -1 | 0 | 0 | 0 | |||
1 | 1 | 1 | 0 | -1 | 0 | 0 | 0 | 1 |
정답:
(1) : 0, (2) : -2, (3) : 2
스무딩 필터 : 어떤 점의 값이 주위에 비해 아주 낮을 때 자신은 커지고 주위는 작아져서 잡음을 누그러뜨리는 효과를 발휘한다.
샤프닝 필터: 에지를 선명하게 해서 물체의 식별을 돕는 작용하는 데, 부작용으로 잡음을 확대한다.
엠보싱 필터: 물체에 돋을새김 느낌을 준다.
05 [예시 3-5]에서 나머지 점 3개에 대한 계산 과정을 제시하시오. (P.107)
- P2 = (1,4,1) => P2'T = [3,3,1] => P2''T => [(0.8660 x 3),(0.5000 x 4),(0 x 1)]
- P3 = (2,3,1) => P3'T = [4,2,1] => P3''T => [(0.8660 x 4),(0.5000 x 2),(0 x 1)]
- 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()
'공부(연습문제 정답) > 컴퓨터 비전과 딥러닝' 카테고리의 다른 글
[5장]컴퓨터 비전과 딥러닝: 지역 특징 (4) | 2024.10.25 |
---|---|
[4장]컴퓨터 비전과 딥러닝 : 에지와 영역 (4) | 2024.09.19 |
[2장]컴퓨터 비전과 딥러닝: OpenCV로 시작하는 컴퓨터 비전 (4) | 2024.09.18 |