[OpenCV] C++ OpenCV Image Thresholding

2026. 2. 9. 16:15·OpenCV
728x90
반응형

c++과 opencv를 이용해 이미지 각 픽셀값을 thresholding하는 방법입니다.

 

이번 챕터에서는 아래 이미지를 입력으로 사용합니다.

input image

 

계속 사용하게 될 threshold 함수의 원형은 아래와 같습니다.

threshold(입력이미지, 출력이미지, 임계값, 최대값, 방식)

 

 

1. Binary Thresholding  

 

  • 픽셀값이 1~255 → 흰색(255)
  • 픽셀값이 0 → 검정(0)

 

#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;

int main() {
  // Read image
  Mat src = imread("threshold.png", IMREAD_GRAYSCALE);
  Mat dst;
  
  // Set threshold and maxValue
  double thresh = 0;
  double maxValue = 255;
  
  // Binary Threshold
  threshold(src,dst, thresh, maxValue, THRESH_BINARY);
  imwrite("opencv-threshold-example.jpg", dst);
  return 0;
}

 

 

  • 픽셀값이 0 ~ 127 → 검정
  • 픽셀값이 128 ~ 255 → 흰색

 

 

 

2. Inverse-Binary Thresholding (THRESH_BINARY_INV)  

  • 픽셀값 > 127  → 0   (검정)
  • 픽셀값 <=127 → 255 (흰색)
// Set threshold and maxValue
double thresh = 128;
double maxValue = 255;

threshold(src,dst, thresh, maxValue, THRESH_BINARY_INV);

 

 

3. Truncate Thresholding (THRESH_TRUNC)  

: 임계값보다 큰 값은 잘라서(thresh로) 고정하고,  작은 값은 그대로 유지

  • 픽셀값 > 127  → 127
  • 픽셀값 <=127 → 원래 값 유지
  // Set threshold and maxValue
  double thresh = 127;
  double maxValue = 255;
  
  threshold(src,dst, thresh, maxValue, THRESH_TRUNC);

 

 

4. Threshold to Zero (THRESH_TOZERO)  

: 임계값보다 작거나 같은 값은 0으로 제거, 큰 값만 그대로 유지

  • 픽셀값 > 127  → 원래 값 유지
  • 픽셀값 <=127 → 0 (검정)
double thresh = 127;
double maxValue = 255;
  
threshold(src,dst, thresh, maxValue, THRESH_TOZERO);

 

 

 

5. Inverted Threshold to Zero (THRESH_TOZERO_INV)  

: 임계값보다 큰 값 제거, 작은 값만 유지

  • 픽셀값 > 127  → 0
  • 픽셀값 <=127 → 원래 값 유지
double thresh = 127;
double maxValue = 255;

threshold(src,dst, thresh, maxValue, THRESH_TOZERO_INV);

 

 

 

[참고자료]

https://learnopencv.com/opencv-threshold-python-cpp/

 

 

 

 

728x90
반응형
저작자표시 (새창열림)

'OpenCV' 카테고리의 다른 글

[OpenCV] C++ OpenCV / Image Filtering Using Convolution  (0) 2025.12.05
[OpenCV] C++ OpenCV image annotating  (0) 2025.11.21
[OpenCV] C++ OpenCV 이미지 다루기 기초  (0) 2025.11.12
[OpenCV] C++ OpenCV 설치 (with Linux)  (0) 2025.11.06
[OpenCV] OpenCV dnn을 이용해 딥러닝 모델 사용하기  (1) 2024.02.08
'OpenCV' 카테고리의 다른 글
  • [OpenCV] C++ OpenCV / Image Filtering Using Convolution
  • [OpenCV] C++ OpenCV image annotating
  • [OpenCV] C++ OpenCV 이미지 다루기 기초
  • [OpenCV] C++ OpenCV 설치 (with Linux)
ga.0_0.ga
ga.0_0.ga
    반응형
    250x250
  • ga.0_0.ga
    ##뚝딱뚝딱 딥러닝##
    ga.0_0.ga
  • 전체
    오늘
    어제
    • 분류 전체보기 (195)
      • Paper Review (56)
        • Video Scene Graph Generation (6)
        • Image Scene Graph Generation (18)
        • Graph Model (5)
        • Key Information Extraction (4)
        • Fake Detection (2)
        • Text to Image (1)
        • Diffusion Personalization (4)
        • LLM & VLM (4)
        • etc (12)
      • AI Research (49)
        • Deep Learning (30)
        • Artificial Intelligence (15)
        • Data Analysis (4)
      • Pytorch (13)
      • ONNX (5)
      • OpenCV (7)
      • Error Note (35)
      • Linux (2)
      • Docker (3)
      • Etc (7)
      • My Study (16)
        • Algorithm (10)
        • Project (4)
        • Interview (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    transformer
    GCN
    linear regression
    TypeError
    dataloader
    fine tuning
    활성화 함수
    차원의 저주
    contiguous
    Inductive bias
    permute
    i3d
    Activation Function
    오차 역전파
    ONNX
    dataset
    그래프신경망
    pandas
    알고리즘
    HRNet
    JNI
    3dinput
    pytorch
    나이브 베이즈 분류
    RuntimeError
    tensorflow
    forch.nn.functional
    Logistic regression
    정규화
    torch.nn
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
ga.0_0.ga
[OpenCV] C++ OpenCV Image Thresholding
상단으로

티스토리툴바