일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 티스토리챌린지
- Multi-Resolution Networks for Semantic Segmentation in Whole Slide Images
- docker
- cocre
- ssh
- CellPin
- 기초확률론
- 프로그래머스
- Decision Boundary
- GIT
- vscode
- logistic regression
- docker exec
- AIFFEL
- 히비스서커스
- airflow
- numpy
- cs231n
- WSSS
- 백신후원
- 도커
- 오블완
- docker attach
- IVI
- aiffel exploration
- Jupyter notebook
- HookNet
- Pull Request
- 사회조사분석사2급
- 코크리
Archives
- Today
- Total
히비스서커스의 블로그
[Numpy] numpy로 이미지 처리하기 3 본문
728x90
numpy로 각종 이미지 처리를 하며 numpy 기능들 정리들을 정리해보았다.
축 관련
축(차원) 제거하기
numpy.squeeze(a, axis=None)
a라는 numpy 배열에서 축(차원)을 제거할 때 사용, 보통 shape을 찍었을 때 값이 1인 것만 제거가 가능
배열 추가하기
numpy.expand_dims(a, axis)
a라는 numpy 배열에서 축(차원)을 추가할 때 사용
관련된 예제 확인
https://numpy.org/doc/stable/reference/generated/numpy.squeeze.html
https://numpy.org/doc/stable/reference/generated/numpy.expand_dims.html
내부 원소 값들의 연산 관련
shape이 동일한 두 numpy 배열 값 연산
덧셈: add(x1 ,x2)
- 두 numpy 배열의 값이 더해진 새로운 numpy 배열을 만듦
뺄셈: subtract(x1, x2)
- 두 numpy 배열의 값을 뺀(x1에서 x2를 뺀) 새로운 numpy 배열을 만듦
예시
import matplotlib.pyplot as plt
import numpy as np
import cv2
mask1 = np.zeros((512, 512))
pts1 = [(25, 200), (72, 100), (486, 328), (295, 472)]
pts1 = [np.array(pts1, dtype=np.int32)]
test1 = cv2.fillPoly(mask1, pts1, 85)
plt.subplot(1, 4, 1)
plt.imshow(test1, cmap='gray', vmin=0, vmax=255)
mask2 = np.zeros((512, 512))
pts2 = [(200, 11), (200, 94), (300, 361), (400, 94)]
pts2 = [np.array(pts2, dtype=np.int32)]
test2 = cv2.fillPoly(mask2, pts2, 170)
plt.subplot(1, 4, 2)
plt.imshow(test2, cmap='gray', vmin=0, vmax=255)
add = np.add(mask1, mask2)
plt.subplot(1, 4, 3)
plt.imshow(add, cmap='gray', vmin=0, vmax=255)
subtract = np.subtract(mask1, mask2)
plt.subplot(1, 4, 4)
plt.imshow(subtract, cmap='gray', vmin=0, vmax=255)
결과
교집합: logical_and()
- 두 배열에서 둘 다 0이 아닌 부분을 True 나머지를 False로 한 새로운 numpy 배열을 만듦
배타적 논리합: logical_xor()
- 두 배열의 합집합에서 교집합인 부분을 제외한 부분만 True, 나머지를 False로 한 새로운 numpy 배열을 만듦
차집합: 배타적 논리합과 교집합을 이용하여 추출
- 두 배열에서 교집합을 제외한 한쪽만 추출한 부분을 True 나머지를 False로 새로운 numpy 배열을 만듦
코드
import matplotlib.pyplot as plt
import numpy as np
import cv2
plt.figure(figsize=(20, 5))
cap = np.logical_and(test1, test2)*255
plt.subplot(1, 4, 1)
plt.title('cap')
plt.imshow(cap, cmap='gray', vmin=0, vmax=255)
xor = np.logical_xor(test1, test2)
plt.subplot(1, 4, 2)
plt.title('xor')
plt.imshow(xor, cmap='gray', vmin=0, vmax=1)
cha1 = np.logical_xor(test1, cap)*85
plt.subplot(1, 4, 3)
plt.title('cha1')
plt.imshow(cha1, cmap='gray', vmin=0, vmax=255)
cha2 = np.logical_xor(test2, cap)*170
plt.subplot(1, 4, 4)
plt.title('cha2')
plt.imshow(cha2, cmap='gray', vmin=0, vmax=255)
결과
-히비스서커스-
728x90
'Programming > Python' 카테고리의 다른 글
[Pytorch] RuntimeError: Input type (torch.cuda.ByteTensor) and weight type (torch.cuda.FloatTensor) should be the same (0) | 2021.10.07 |
---|---|
[Python] python으로 xml파일 parsing 및 저장 (feat. findall) (0) | 2021.10.05 |
[Numpy] numpy로 이미지 처리하기 2 (0) | 2021.09.09 |
[Python] 한 줄 코드 및 GPU 분산처리 코드 (0) | 2021.08.26 |
[Numpy] numpy로 이미지 처리하기 (2) | 2021.06.30 |