[OpenCV] 영상처리

happy_quokka·2023년 11월 8일
0

OpenCV

목록 보기
8/11

영상의 밝기 조절 (Brightness.cpp)

밝아짐

f(p)=p+50f(p) = p + 50

  • 또는 opencv 함수를 사용하여 같은 결과를 수행할 수 있다.
add(src, 50, dst); 

어두워짐

연산자(+,-) 오버로딩 : src - 50은 src - Scalar(50)으로 변경되어 연산자 재정의가 수행됨. -> saturate연산을 알아서 수행해준다

cv::MatExpr cv::operator-(const cv::Mat &a, const cv::Scalar &s)

영상의 반전(inverse)

  • 영상 내의 모든 픽셀 값을 각각 그레이스케일 최댓값에서 뺀 값으로 설정 / 컬러 영상의 경우 각각의 색상 성분에 대해 반전
  • dst(x,y)=255src(x,y)dst(x, y) = 255 - src(x, y)

전처리기에서 처리하는 것으로 if 0 부분은 처리하지 않기 때문에 else ~ endif 부분만 처리한다. 주석의 느낌으로 사용할 수 있다

#if 0
#else
#endif

영상의 밝기 평균 구하는 법

  1. 직접 구현
int s = 0;
    for(int j = 0; j < src.rows; j++){
        for(int i = 0; i < src.cols; i++){
            s += src.at<uchar>(j,i);
        }
    }

    int m = s / (src.rows * src.cols);
  1. opencv 제공 함수 이용
int m = sum(src)[0] / src.total();
또는
int m = mean(src)[0];

영상의 명암비 조절(Contrast.cpp)

명암비 증가

영상 평균값 고려 명암비 증가

histogram(Histogram1.cpp / Histogram2.cpp)

  • 스트레칭(Stretching.cpp)

  • 평활화(Equalize.cpp)

산술 연산(Arithmetic.cpp)

논리 연산(Logical.cpp)

영상의 필터링

엠보싱 필터 (Filter.cpp)

  • +128하기 전
  • +128 한 후

블러링

  • 평균값 블러링(Blurring.cpp)

  • 가우시안 블러링(Gaussian.cpp)

샤프닝(Sharpen.cpp)

0개의 댓글