Notice
Recent Posts
Recent Comments
Link
반응형
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
Tags
- 머신비전
- machinevision
- 대학원
- 직장인
- 프로그래밍
- 영어
- 오픽
- 영어기초
- 머신러닝
- 딥러닝
- Ai
- 석사
- opencv
- 4차산업
- 영어회화
- 영어공부
- 초보영어
- C언어
- coding
- 파이썬
- 파이썬gui
- 산업대학원
- ComputerVision
- 특수대학원
- Vision
- Python
- 동사
- 코딩
- 인공지능
- 3dprinter
Archives
- Today
- Total
미래기술연구소
[패스트캠퍼스 수강 후기] 컴퓨터비전인강 100% 환급 챌린지 44 회차 본문
728x90
반응형
속성을 가져오기 코드
import numpy as np
import cv2
img = cv2.imread("../resource/Images/ipad.jpeg")
print(img.shape)
print(img.size)
print(img.dtype)
결과

이미지 ROI
이미지를 처리할 때 특정 영역에서 작업이 이루어지는 경우가 있습니다. 이럴 때 ROI를 사용하여 특정 구역을 인덱싱하여 사용할 수 있습니다.
코드
import numpy as np
import cv2
img = cv2.imread("../resource/Images/ipad.jpeg")
cv2.namedWindow('original', cv2.WINDOW_NORMAL)
cv2.imshow('original', img)
subImg = img[300:400, 350:750]
cv2.namedWindow('cutting', cv2.WINDOW_NORMAL)
cv2.imshow('cutting', subImg)
print(img.shape)
print(subImg.shape)
cv2.waitKey(0)
cv2.destroyAllWindows()
코드 설명
img[300:400, 350 : 750]
사용하여 x축 300에서 400까지 y축 350에서 750까지의 구역을 짤라서 보여 줄 수 있다.
결과

왼쪽 오리지널 오른쪽 cutting이미지 채널 분할 및 합치기
필요시 컬러 이미지의 경우 B, G, R을 채널 별로 픽셀값을 따로 분리해 놓을 수 있다. 그리고 분리한 b, g, r을 다시 합칠 수 도 있습니다.
색 분리 해주는 코드
import numpy as np
import cv2
img = cv2.imread("../resource/Images/ipad.jpeg")
b, g, r = cv2.split(img)
print(img[100, 100])
print(b[100, 100], g[100, 100], r[100, 100])
코드 설명
b, g, r = cv2.split(img)
split을 통해서 이미지의 bgr값을 분리할 수 있습니다. 예를 들어서 위의 코드처럼 b, g, r을 채널별로 나눌 수 있습니다.
결과

분리한 채널 보여주기
import numpy as np
import cv2
img = cv2.imread("../resource/Images/ipad.jpeg")
b, g, r = cv2.split(img)
def showImage(window, img):
cv2.namedWindow(window, cv2.WINDOW_NORMAL)
cv2.imshow(window, img)
showImage("original", img)
showImage("b", b)
showImage("g", g)
showImage("r", r)
cv2.waitKey(0)
cv2.destroyAllWindows()
분리된 채널의 값을 imshow에 넣어 주었습니다.
결과

분리한 채널을 다시 합치기 코드
mergeImage = cv2.merge((b, g, r))
showImage("merge", mergeImage)
merge 후 showImage에 배열과 window이름을 추가해주면 아래와 같이 원본 사진이 나온다.
결과

Appendix
split은 성능상으로 좋지 못하다 그래서 numpy inexing을 사용해주면 더 효율적으로 사용할 수 있다.
b = img[:, :, 0]
g = img[:, :, 1]
r = img[:, :, 2]
출처: https://hoony-gunputer.tistory.com/entry/opencv-python-roi-및-속성-채널 [후니의 컴퓨터]
728x90
반응형
'etc > FastCampus 챌린지' 카테고리의 다른 글
[패스트캠퍼스 수강 후기] 컴퓨터비전인강 100% 환급 챌린지 46 회차 (0) | 2020.12.03 |
---|---|
[패스트캠퍼스 수강 후기] 컴퓨터비전인강 100% 환급 챌린지 45 회차 (0) | 2020.12.02 |
[패스트캠퍼스 수강 후기] 컴퓨터비전인강 100% 환급 챌린지 43 회차 (0) | 2020.11.30 |
[패스트캠퍼스 수강 후기] 컴퓨터비전인강 100% 환급 챌린지 42 회차 (0) | 2020.11.29 |
[패스트캠퍼스 수강 후기] 컴퓨터비전인강 100% 환급 챌린지 41 회차 (0) | 2020.11.28 |