본문 바로가기

개발/AI

[OpenCV] 컴퓨터 비전과 딥러닝 / Ch05 / 연습 문제

틀릴 수 있음 주의

 

01

(1)

3 2 5
2 0 2
3 2 3

C=2

 

(2)

0 3 5
2 0 3
3 2 0

C=2

 

 

02

 

03

import cv2 as cv

img=cv.imread("../source/pooh.jpg")
gray=cv.cvtColor(img,cv.COLOR_BGR2GRAY)

for i in range(0,10):
    num=2**i
    
    #make keypoint
    sift=cv.SIFT_create(nfeatures=num)
    kp,des=sift.detectAndCompute(gray,None)

    #draw keypoint
    gray=cv.drawKeypoints(gray,kp,None,flags=cv.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)
    cv.imshow('sift'+f'{num}',gray)

k=cv.waitKey()
cv.destroyAllWindows()



04

 

05

 

06

import cv2 as cv
import numpy as np

img=cv.imread("../source/puppy.png")
gray=cv.cvtColor(img,cv.COLOR_BGR2GRAY)

height=img.shape[0]
width=img.shape[1]

k=2**(1/3)
sigma=1.6


gaussian1 = cv.GaussianBlur(gray, (5, 5), sigma)
for i in range(0,5):
    sigma=sigma*k
    
    gaussian2 = gaussian1
    gaussian1 = cv.GaussianBlur(gray, (5, 5), sigma)  
    DoG = np.zeros_like(gray)
    for i in range(height):
        for j in range(width):
            DoG[i][j] = float(gaussian1[i][j]) - float(gaussian2[i][j])

    cv.imshow("puppy"+f'{sigma}',DoG)
    


k=cv.waitKey()
cv.destroyAllWindows()

 

07

t와 e를 늘린다

 

08

import cv2 as cv
import numpy as np

img=cv.imread("../source/puppy.png")
gray=cv.cvtColor(img,cv.COLOR_BGR2GRAY)

height=img.shape[0]
width=img.shape[1]

k=2**(1/3)
sigma=1.6


gaussian1 = cv.GaussianBlur(gray, (5, 5), sigma)
for i in range(0,5):
    sigma=sigma*k
    
    gaussian2 = gaussian1
    gaussian1 = cv.GaussianBlur(gray, (5, 5), sigma)  
    DoG = np.zeros_like(gray)
    for i in range(height):
        for j in range(width):
            DoG[i][j] = float(gaussian1[i][j]) - float(gaussian2[i][j])

    cv.imshow("puppy"+f'{sigma}',DoG)
    


k=cv.waitKey()
cv.destroyAllWindows()

특징점 개수 = 149 420