회원 로그인
|
OpenCV 10-1. 이미지 Thresholding
https://blog.naver.com/samsjang OpenCV의 강좌를 공부 차원에서 재정리한 것입니다. |
이미지 프로세싱에서 자주 활용될 이미지 Thresholding(문턱)에 대한 이미지 픽셀 값이 Thresholding Value(문턱값)보다 크면 어떤 고정값, 작으면 다른 고정값을 할당하는 것 Thresholding을 적용하려면 grayscale 이미지로 변환해여 적용한다.
Global Thresholding
openCV에서 하나의 이미지에 전역으로 적용될 하나의 문턱값을 이용해 Thresholding 기능을 제공하는 함수가 있다.
Global Thresholding 이미지의 각 부분의 광원 조건에 따라 이미지 프로세싱을 함에 있어 효과적인 방법이다.
cv2.threshold(img, threshold_value, value, flag)
- img : Grayscale 이미지
- threshold_value : 픽셀 문턱값
- value : 픽셀 문턱값보다 클 때 적용되는 최대값(적용되는 플래그에 따라 픽셀 문턱값보다 작을 때 적용되는 최대값)
- flag : 문턱값 적용 방법 또는 스타일
- cv2.THRESH_BINARY : 픽셀 값이 threshold_value 보다 크면 value, 작으면 0으로 할당
- cv2.THRESH_BINARY_INV : 픽셀 값이 threshold_value 보다 크면 0, 작으면 value로 할당
- cv2.THRESH_TRUNC : 픽셀 값이 threshold_value 보다 크면 threshold_value, 작으면 픽셀 값 그대로 할당
- cv2.THRESH_TOERO : 픽셀 값이 threshold_value 보다 크면 픽셀 값 그대로, 작으면 0으로 할당
- cv2.THRESH_TOZERO_INV : 픽셀 값이 threshold_value 보다 크면 0, 작으면 픽셀 값 그대로 할당
# -*- coding: utf-8 -*- # opencv_014-1.py # https://blog.naver.com/samsjang/220504782549 # 이미지 Thresholding import numpy as np import cv2 # cv2.threshold() 함수를 이용하여 다양한 플래그를 적용한 결과를 화면에 출력 # 그라데이션 이미지 img = cv2.imread('images/image-14-1.jpg', cv2.IMREAD_GRAYSCALE) # 일반 이미지 #img = cv2.imread('images/image-14-1-1.jpg', cv2.IMREAD_GRAYSCALE) ret, thr1 = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY) ret, thr2 = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY_INV) ret, thr3 = cv2.threshold(img, 127, 255, cv2.THRESH_TRUNC) ret, thr4 = cv2.threshold(img, 127, 255, cv2.THRESH_TOZERO) ret, thr5 = cv2.threshold(img, 127, 255, cv2.THRESH_TOZERO_INV) cv2.imshow('Original', img) cv2.imshow('BINARY', thr1) cv2.imshow('BINARY_INV', thr2) cv2.imshow('TRUNC', thr3) cv2.imshow('TOZERO', thr4) cv2.imshow('TOZERO_INV', thr5) cv2.waitKey(0) cv2.destroyAllWindows()
댓글 0개
| 엮인글 0개
285개(1/15페이지)
번호 | 제목 | 글쓴이 | 조회 | 날짜 |
---|---|---|---|---|
285 | [Python] 동적 import - 모듈을 변수로 받아오기 | 푸딩뱃살 | 405 | 2022.10.27 10:45 |
284 | [Python] 파이썬 3.7.7과 3.9.7의 os.path.expanduser() 차이 | 푸딩뱃살 | 436 | 2022.08.18 12:22 |
283 | [Python] error: Microsoft Visual C++ 9.0 is required. | 푸딩뱃살 | 654 | 2022.08.03 13:35 |
282 | [Python] pyscript | 푸딩뱃살 | 433 | 2022.06.09 11:21 |
281 | [Python] float is / float not is | 푸딩뱃살 | 580 | 2022.03.02 15:03 |
280 | [Python] 이터널 문자열 f | 푸딩뱃살 | 807 | 2022.01.27 16:35 |
279 | [Python] is와 ==의 차이 | 푸딩뱃살 | 475 | 2021.11.25 15:54 |
278 |
[Python] Error: ImportError: file |
푸딩뱃살 | 883 | 2021.11.16 11:24 |
277 | [Python] 파이썬 디컴파일 - uncompyle6 | 푸딩뱃살 | 749 | 2021.11.10 14:46 |
276 | [Python] 파이썬 확장자 설명 | 푸딩뱃살 | 534 | 2021.11.03 14:38 |
275 | [참고] 웹 fbx 뷰어 | 푸딩뱃살 | 452 | 2021.10.19 15:46 |
274 | [Python] enumerate() | 푸딩뱃살 | 483 | 2021.10.13 14:44 |
273 | [Python] 아나콘다에서 가상 환경 | 푸딩뱃살 | 691 | 2020.11.21 00:26 |
272 | [Python] pip로 설치 때 퍼미션 에러 | 푸딩뱃살 | 1246 | 2020.06.06 17:13 |
271 | [Python] OpenCV 10-3. 이미지 Thresholding - Otsu's Binarizatio | 푸딩뱃살 | 652 | 2020.06.05 14:01 |
270 | [Python] OpenCV 10-2. 이미지 Thresholding - Adaptive Threshold | 푸딩뱃살 | 673 | 2020.06.05 13:58 |
>> | [Python] OpenCV 10-1. 이미지 Thresholding | 푸딩뱃살 | 566 | 2020.06.05 13:56 |
268 | [Python] OpenCV 9-2. 색 추적 | 푸딩뱃살 | 740 | 2020.06.02 23:29 |
267 | [Python] OpenCV 9-1. 색공간 바꾸기 | 푸딩뱃살 | 626 | 2020.06.02 23:27 |
266 | [Python] OpenCV 8-3. 이미지 비트 연산 | 푸딩뱃살 | 509 | 2020.06.02 23:21 |