Notice
Recent Posts
Recent Comments
Link
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- C++
- 공부
- 쉘
- OpenCV
- 프로세스
- c
- shell
- CV
- 백준알고리즘
- 리눅스
- 턱걸이
- 시스템프로그래밍
- 딥러닝
- C언어
- python
- 학습
- 운영체제
- 텐서플로우
- 회귀
- 백준
- linux
- TensorFlow
- 알고리즘
- 영상처리
- Windows10
- Computer Vision
- 코딩
- Windows 10
- 프로그래밍
- error
Archives
- Today
- Total
줘이리의 인생적기
CV - opencv(Python) addImage, addWeightedImage, imageThreshold 본문
공부/Computer Vision(py)
CV - opencv(Python) addImage, addWeightedImage, imageThreshold
줘이리 2020. 7. 16. 08:00728x90
addImage, addWeightedImage, imageThreshold에 대해 알아보도록 하겠습니다.
1번 addImage - 이미지합치기
2번 addWeightedImage - 각 이미지에 가중치 조절하기
3번 imageThreshold
-THRESH_BINARY : 픽셀 값이 설정 값보다 크면 설정 값, 작으면 0으로 할당.
-THRESH_BINARY_INV : 픽셀 값이 설정 값보다 크면 0, 작으면 설정 값으로 할당.
-THRESH_TRUNC : 픽셀 값이 설정 값보다 크면 설정 값, 작으면 픽셀 값으로 할당.
-THRESH_TOZERO : 픽셀 값이 설정 값보다 크면 픽셀 값, 작으면 0으로 할당.
-THRESH_TOZERO_INV : 픽셀 값이 설정 값보다 크면 0, 작으면 픽셀 값 할당.
코드 원형 설명
#두 이미지 더하기
def addImage(image1, image2):
return cv2.add(image1, image2)
#각 이미지에 가중치 조절하기
def addWeightedImage(image1, w1, imagw2, w2=None):
if w2 is None:
return cv2.addWeighted(image1, float(w1) * 0.01, imagw2, float(100 - w1) * 0.01, 0)
else:
return cv2.addWeighted(image1, w1 * 0.01, imagw2, w2 * 0.01, 0)
#threshold 설정하기
def imageThreshold(image, thresh=128, maxval=255, type=cv2.THRESH_BINARY):
_, res = cv2.threshold(image, thresh=thresh, maxval=maxval, type=type)
return res
1번 코드 설명
더보기
# -*- coding: utf-8 -*-
from OpenCV_Functions import *
#이미지 불러오기
imagePath_1 = "<사진경로>"
imagePath_2 = "<사진경로>"
image_1 = imageRead(imagePath_1)
image_2 = imageRead(imagePath_2)
#이미지 합치기
image_sum_1 = addImage(image_1, image_2)
image_sum_2 = image_1 + image_2
#창 설정
print("image_1, value at (463, 175)", getPixel(image_1, 463, 175))
print("image_2, value at (463, 175)", getPixel(image_2, 463, 175))
print("image_sum_1, value at (463, 175)", getPixel(image_sum_1, 463, 175))
print("image_sum_2, value at (463, 175)", getPixel(image_sum_2, 463, 175))
#창 띄우기
imageShow('image_1', image_1)
imageShow('image_2', image_2)
imageShow("image_sum_1", image_sum_1)
imageShow("image_sum_2", image_sum_2)
cv2.destroyAllWindows()
2번 코드 설명
더보기
# -*- coding: utf-8 -*-
from OpenCV_Functions import *
def nothing(x):
pass
#이미지 불러오기
imagePath_1 = "<이미지경로>"
imagePath_2 = "<이미지경로>"
image_1 = imageRead(imagePath_1)
image_2 = imageRead(imagePath_2)
#트랙바 설정
cv2.namedWindow('dst', cv2.WINDOW_GUI_EXPANDED)
cv2.createTrackbar('Weighted1', 'dst', 0, 100, nothing)
cv2.createTrackbar('Weighted2', 'dst', 0, 100, nothing)
switch = '0:W2 OFF\n1:W2 On'
cv2.createTrackbar(switch, 'dst', 1, 1, nothing)
dst = imageCopy(image_1)
while True:
cv2.imshow('dst', dst)
if cv2.waitKey(1) & 0xFF == 27:
break
w1 = cv2.getTrackbarPos('Weighted1', 'dst')
w2 = cv2.getTrackbarPos('Weighted2', 'dst')
s = cv2.getTrackbarPos(switch, 'dst')
if s==0:
dst = addWeightedImage(image_1, w1, image_2)
else:
dst = addWeightedImage(image_1, w1, image_2, w2)
cv2.destroyAllWindows()
3번 코드 설명
더보기
# -*- coding: utf-8 -*-
from OpenCV_Functions import *
image = np.zeros((512, 512), np.uint8)
for i in range(0, 512):
for j in range(0, 256):
image = setPixel(image, i, j, j)
for j in range(256, 512):
image = setPixel(image, i, j, 256-j)
imageShow("image", image)
#threshold의 여러 flag
image_THRESH_BINARY = imageThreshold(image, 128, 255, cv2.THRESH_BINARY)
imageShow("THRESH_BINARY", image_THRESH_BINARY)
image_THRESH_BINARY_INV = imageThreshold(image, 128, 255, cv2.THRESH_BINARY_INV)
imageShow("THRESH_BINARY_INV", image_THRESH_BINARY_INV)
image_THRESH_TRUNC = imageThreshold(image, 128, 255, cv2.THRESH_TRUNC)
imageShow("THRESH_TRUNC", image_THRESH_TRUNC)
image_THRESH_TOZERO = imageThreshold(image, 128, 255, cv2.THRESH_TOZERO)
imageShow("THRESH_TOZERO", image_THRESH_TOZERO)
image_THRESH_TOZERO_INV = imageThreshold(image, 128, 255, cv2.THRESH_TOZERO_INV)
imageShow("THRESH_TOZERO_INV", image_THRESH_TOZERO_INV)
cv2.destroyAllWindows()
'공부 > Computer Vision(py)' 카테고리의 다른 글
CV - opencv(Python) 경계선 검출(edge detection) (0) | 2020.07.20 |
---|---|
CV - opencv(Python) Blur, GaussianBlur, MedianBlur (0) | 2020.07.17 |
CV - opencv(Python) 비디오에 라인, 원, 사각형 그리기 (0) | 2020.07.13 |
CV - opencv(Python) White, Yellow 차선 검출 (0) | 2020.07.10 |
CV - opencv(Python) ROI, Channels (0) | 2020.07.09 |