일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 27 | 28 |
Tags
- adaptive life cycle
- python
- Crawling
- DANAWA
- visualizing
- 자바스크립트
- instance
- Project
- 애자일
- data analyze
- angular
- algorithm
- opencv
- Agile
- Scrum
- keras
- tensorflow
- TypeScript
- Method
- matplotlib
- 프로젝트
- javascript
- AWS
- data
- webcrawling
- analyzing
- pandas
- ECS
- 크롤링
- 다나와
Archives
- Today
- Total
LiJell's 성장기
04. OpenCV Basic Review + α (4편) 본문
반응형
2022.01.26 - [Bigdata/OpenCV] - 05. OpenCV Basic 두번째 (5편)
2022.01.25 - [Bigdata/OpenCV] - 03. OpenCV_Basic (3편)
4.1. 1편 리뷰 + α
import numpy as np
import cv2
import sys
4.1.1 사진 불러오기
img = cv2.imread('./Ch_2_Opencv_basic/fig/puppy.bmp', 1) # 1은 컬러 0은 흑백
if img is None:
print('image read failed')
sys.exit()
cv2.namedWindow('img', cv2.WINDOW_AUTOSIZE)
cv2.imshow('img', img)
while True:
key = cv2.waitKey()
if key ==27 or key == ord('q'):
break
cv2.destroyAllWindows()
4.1.2. 사이즈 조정
img = cv2.imread('./Ch_2_Opencv_basic/fig/puppy.bmp', 1)
img_re = cv2.resize(img, (200, 150), interpolation = cv2.INTER_AREA)
# cv2.imwrite('./Ch_2_Opencv_basic/fig/resized_puppy.png', img_re)
if img is None:
print('image read failed')
sys.exit()
cv2.namedWindow('img', cv2.WINDOW_AUTOSIZE)
cv2.imshow('img', img)
while True:
if cv2.waitKey()==27:
break
cv2.destroyAllWindows()
4.1.3. matplotlib로 사진 뽑기
import matplotlib.pyplot as plt
imgBGR = cv2.imread('./Ch_2_Opencv_basic/fig/puppy.bmp', 1)
imgRGB = cv2.cvtColor(imgBGR, cv2.COLOR_BGR2RGB)
imgGRAY = cv2.cvtColor(imgBGR, cv2.COLOR_BGR2GRAY)
plt.imshow(imgBGR)
plt.imshow(imgRGB)
plt.imshow(imgGRAY, cmap = 'gray')
plt.axis('off')
plt.show()
4.1.4. glob 이용해서 폴더 전체 파일 반복
import glob
img_list = glob.glob('./Ch_1_Opencv_Intro/fig/images/*.jpg')
print(img_list)
'''
['./Ch_1_Opencv_Intro/fig/images\\autumn_forest_park_128379_1920x1080.jpg', './Ch_1_Opencv_Intro/fig/images\\boat_mountains_lake_135258_1920x1080.jpg', './Ch_1_Opencv_Intro/fig/images\\forest_fog_trees_128751_1920x1080.jpg', './Ch_1_Opencv_Intro/fig/images\\pier_dock_sea_dusk_shore_118549_1920x1080.jpg', './Ch_1_Opencv_Intro/fig/images\\road_marking_evening_clouds_horizon_120298_1920x1080.jpg']
'''
cv2.namedWindow('img', cv2.WINDOW_NORMAL)
cv2.setWindowProperty('img', cv2.WND_PROP_FULLSCREEN,
cv2.WINDOW_FULLSCREEN)
idx = 0
while True:
img = cv2.imread(img_list[idx])
cv2.imshow('img', img)
if cv2.waitKey(3000) == 27:
break
idx +=1
if idx >= len(img_list):
idx = 0
cv2.destroyAllWindows()
4.1.5. 영상 크기 참조
img = cv2.imread('./Ch_2_Opencv_basic/fig/puppy.bmp', 1)
print(img.shape)
h, w = img.shape[:2]
print('img dimension = {} x {}'.format(w,h))
'''
(480, 640, 3)
img dimension = 640 x 480
'''
4.1.6. 특정 부위 바꾸기
imgC = cv2.imread('./Ch_2_Opencv_basic/fig/puppy.bmp', 1)
imgG = cv2.imread('./Ch_2_Opencv_basic/fig/puppy.bmp', 0)
imgC[100:200, 200:300] = (0, 0, 225)
imgG[100:200, 200:300] = 127
cv2.imshow('img1', imgC)
cv2.imshow('img2', imgG)
cv2.waitKey()
cv2.destroyAllWindows()
4.1.7. 새로운 창 만들기
img1 = np.zeros((400, 300, 3), dtype = np.uint8)
img2 = np.ones((400, 300, 3), dtype = np.uint8)*255
img3 = np.full((400, 300, 3), (0, 0 , 255), dtype = np.uint8) # 뭘 넣어줄지 입력해야해
img4 = np.random.randint(0, 255, (400, 300), dtype = np.uint8)
cv2.imshow('img1', img1)
cv2.imshow('img2', img2)
cv2.imshow('img3', img3)
cv2.imshow('img4', img4)
cv2.waitKey()
cv2.destroyAllWindows()
4.1.8. 사진 복사
img = cv2.imread('./Ch_2_Opencv_basic/fig/puppy.bmp', 1)
img1 = img
img2 = img.copy()
img[50:100, 100:300] = (255, 0 ,0)
cv2.imshow('img1', img1)
cv2.imshow('img2', img2)
cv2.imshow('img', img)
cv2.waitKey()
cv2.destroyAllWindows()
4.1.9. 코 동그라미
img = cv2.imread('./Ch_2_Opencv_basic/fig/puppy.bmp', 1)
img2 = img[200:400, 300:500]
cv2.circle(img2, (100,100), 50, (0,0,255), 3, cv2.LINE_AA)
cv2.imshow('img', img)
cv2.imshow('img2', img2)
cv2.waitKey()
cv2.destroyAllWindows()
4.1.10. 합성
src = cv2.imread('./Ch_2_Opencv_basic/fig/airplane.bmp')
mask = cv2.imread('./Ch_2_Opencv_basic/fig/mask_plane.bmp')
dst = cv2.imread('./Ch_2_Opencv_basic/fig/field.bmp')
cv2.copyTo(src, mask, dst)
cv2.imshow('src',src)
cv2.imshow('mask',mask)
cv2.imshow('dst',dst)
cv2.waitKey()
cv2.destroyAllWindows()
반응형
'Bigdata > OpenCV' 카테고리의 다른 글
06. OpenCV 키보드 마우스 이벤트 처리 (6편) (0) | 2022.01.27 |
---|---|
05. OpenCV Basic 두번째 (5편) (0) | 2022.01.26 |
03. OpenCV_Basic (3편) (0) | 2022.01.25 |
02. OpenCV_Intro_Review + α (2편) (0) | 2022.01.25 |
01. OpenCV_Intro (1편) (0) | 2022.01.24 |
Comments