Tags
- Imitating Arm
- Canny
- SIOR-TITAN
- opencv
- 태양전지
- RQ-TITAN
- 오디세이 x86
- JLCPCB
- 아두이노
- artwork
- Arduino
- opencv-python
- 태양광 충전케이스
- pcb 설계
- motion recognition
- Python
- 태양광 충전 휴대폰케이스
- 체험지수
- 윈도우10
- Motion Estimation
- 태양광 휴대폰케이스
- EasyEDA
- Video
- 모션제어
- odyssey x86J4105
- PCB Artwork
- UART
- 태양광
- pcb
- 태양 충전 케이스
Archives
- Today
- Total
제너럴공국
OpenCV-python 응용 <1. 추억 엽서 만들기 프로젝트> 본문
반응형
#사용 버전
cv2 3.4.2
numpy 1.18.1
파이썬 3.5.6
import cv2
import numpy as np
#image 지정
filename = "hy"
#image 읽기 + 비율 유지하며 resize
img = cv2.imread("img/"+filename+".jpg")
ratio = 700.0 / img.shape[1]
dim = (700, int(img.shape[0] * ratio))
img = cv2.resize(img, dim, interpolation=cv2.INTER_AREA)
#가우스 필터 +Canny edge, 사진별 threshold 지정 필요
img = cv2.GaussianBlur(img, (5, 5), 0)
#edge = cv2.Canny(img, 50, 70)
edge = cv2.Canny(img, 80, 200)
#이미지 병합하기 + 편지지 붙여넣기
size_image= np.shape(edge)
blank_image = np.zeros((size_image[0],size_image[1]), np.uint8)
i = 150
cv2.line(blank_image, (50, i-60), (size_image[1]-50, i-60), (255, 255, 255))
while size_image[0]>i:
cv2.line(blank_image, (20, i), (size_image[1]-20, i), (255, 255, 255))
i=i+50
#이미지의 가로크기, 세로크기를 확인, 합칠 방향 결정
if img.shape[0]>img.shape[1]:
black = np.hstack((edge, blank_image))
else:
black = np.vstack((edge, blank_image))
white = cv2.bitwise_not(black)
#이미지 보여주기 + 저장
filename1 = "img/"+filename+"1.jpg"
filename2 = "img/"+filename+"2.jpg"
cv2.imshow('black_version', black)
cv2.imshow('white_version', white)
cv2.imwrite(filename1, black)
cv2.imwrite(filename2, white)
#이미지 창 닫기
cv2.waitKey(0)
cv2.destroyAllWindows()
<프로젝트 특징>
1. 이미지 비율을 유지하며, 사이즈를 축소 또는 확대 시킵니다.
2. 가우시안 필터를 통해 이미지를 부드럽게 해주고, 캐니 엣지로 윤곽선을 추출합니다.
3. 이미지의 좌, 우 크기에 따라 편지지 부분을 가로로 세로로 붙일지 결정 해줍니다.
반응형
'컴퓨터공학 > opencv-python' 카테고리의 다른 글
OpenCV-python 응용 <2. Smile recognition - 웃음 인식> (1) | 2020.07.16 |
---|---|
OpenCV-python 기초 <5. 직선, 다각형 그리기, 글자 쓰기> (1) | 2020.02.19 |
OpenCV-python 기초 <4. 비디오 필터 적용하기> (1) | 2020.02.19 |
OpenCV-python 기초 <3. 이미지에 여러가지 필터 적용하기> (1) | 2020.02.19 |
OpenCV-python 기초 <2. 비디오 띄우기> (1) | 2020.02.19 |
Comments