728x90
스파르타 코딩클럽의 딥러닝 이미지 처리 수업을 기반으로 공부한 내용을 정리하고 있습니다.
특정 부분만 잘라서 이미지처리 하고 싶으면 어떻게 하면 될까?
우선 이미지 리사이즈코드 아래에 이미지처리를 하고 싶은 특정 부분을 자르는 코드를 추가해준다.
1
2
|
img = cv2.resize(img, dsize=(500, int(h / w * 500)))
img = img[162:513, 185:428]
|
cs |
이미지 자르는 코드는 블로그에 정리한 이미지 처리하기 게시글 참고!
그렇다면 이미지에서 서로 다른 부분은 다른 이미지 처리를 하고 싶다면 어떻게 해야 할까?
우선 같은 이미지를 두개의 모델을 적용한 후, 이미지 처리된 두 개의 이미지를 합쳐주는 프로세싱을 거치면 된다.
이미지 하나를 기존의 딥러닝 모델을 통해 이미지 처리를 해주어야 하는데 해당 코드는 블로그 내에 이미 정리해둔 게시글 참고 하여 작성하면 된다.
***기존 이미지 처리 및 추론 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
import cv2
import numpy as np
net = cv2.dnn.readNetFromTorch('딥러닝 모델파일명 및 위치')
img = cv2.imread('이미지 파일')
h, w, c = img.shape
img = cv2.resize(img, dsize=(x, int(h / w * x)))
MEAN_VALUE = [103.939, 116.779, 123.680]
blob = cv2.dnn.blobFromImage(img, mean=MEAN_VALUE)
net.setInput(blob)
output = net.forward()
output = output.squeeze().transpose((1, 2, 0))
output += MEAN_VALUE
output = np.clip(output, 0, 255)
output = output.astype('uint8')
cv2.imshow('img', img)
cv2.imshow('result', output)
cv2.waitKey(0)
|
cs |
-> 위의 코드가 이미지를 하나의 모델로 추론한 코드이다.
추가하고자 하는 두번째 모델을 4번째줄 코드 아래에 추가해준다.
1
|
net2 = cv2.dnn.readNetFromTorch('두번째 ')
|
cs |
그리고 15번째 줄부터 22번째 줄의 후처리 코드를 복사한뒤, 두번째 모델에 대한 후처리 코드로 수정하여, 그 아래에 붙여넣기 한다.
1
2
3
4
5
6
7
8
|
net2.setInput(blob)
output2 = net2.forward()
output2 = output2.squeeze().transpose((1, 2, 0))
output2 = output2 + MEAN_VALUE
output2 = np.clip(output2, 0, 255)
output2 = output2.astype('uint8')
|
cs |
그 다음엔 각각 추론한 이미지를 잘라서 합쳐준다.
1
2
3
|
output3 = np.concatenate([output[:, :'x축 길이'], output2[:, 'x축길이':]], axis=1)
cv2.imshow('output3', output3)
|
cs |
-> output 이미지는 y축 세로 길이는 그대로이고, x축 가로길이를 0에서 원하는 길이만큼 잘라주고, output2는 output 이미지가 잘리는 그 시점부터 끝까지 잘라준다.
-> 그리고 두 이미지를 합쳐서 output3라는 변수에 담아서 이미지를 출력해본다.
728x90
'Data' 카테고리의 다른 글
[Practice]Face Mask Detector (0) | 2020.12.10 |
---|---|
[Practice] 이미지 처리 연습하기 (0) | 2020.12.04 |
딥러닝_이미지 처리하기(1) (0) | 2020.12.03 |
[Intro]딥러닝 이미지 처리_기본적인 기능(이미지 처리) (0) | 2020.11.26 |
[Intro]딥러닝_기본적인 기능(동영상 처리) (0) | 2020.11.26 |