ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Mat Operator
    컴공지식/컴퓨터비전 2024. 9. 9. 16:50

    ROI(Region of Interest)에 대해 알아보자

    ROI 란 이미지에서 우리가 관심 있는 특정 부분을 선택하는 거다.

    마치 잘라내기다.

    다음은 ROI를 이용하는 코드다.

     

    int main() {
        Mat image = imread("lena.png");  // 이미지를 불러오는 부분
        Rect rect(100, 30, 250, 300);   // ROI 영역을 정의하는 사각형(x, y, 너비, 높이)
        Mat rect_roi = image(rect);     // 이미지를 해당 ROI 부분만 자른다
        imshow("rectROI", rect_roi);    // 자른 부분을 화면에 보여준다
        
        waitKey(0);  // 키 입력을 기다리면서 창을 유지
    }

     

    여기서 Rect 클래스가 나오는데

    Rect 클래스는 다음과 같이 쓴다.

    Rect(x, y, width, height)

    x, y는 왼쪽 위 모서리의 좌표다

    width와 height는 너비와 높이다.

     


    자, 이번에는 이미지 덧셈과 뺄셈을 알아보자

     

    다음 코드를 살펴보자

     

    int main() {
        Mat img1 = imread("lena.png");  // 첫 번째 이미지 불러오기
        Mat img2 = imread("lena.png");  // 두 번째 이미지 불러오기 (여기서는 같은 이미지 사용)
        Mat dst;                        // 결과를 저장할 변수
        add(img1, img2, dst);           // img1과 img2를 더해서 dst에 저장
        imshow("dst", dst);             // 결과 이미지를 보여줌
        waitKey(0);                     // 키 입력 대기 (결과 창 유지)
    }

     

    이 코드는 두 이미지를 더하는 거라서, 결과 이미지의 픽셀이 원래 이미지보다 더 밝아진다.

    이 처럼 함수를 이용해 이미지를 더하거나 뺄 수 있는데 이에 관련된 코드 몇 가지를 소개하겠다.

     

    scaleAdd(Mat src1, double scale, Mat src2, Mat dst)

    이 함수는 src1 이미지를 scale 배만큼 곱하고, src2 이미지를 더해서 dst에 결과를 저장하는 함수다.

    scale * src1(I) + src2(I) 인거다.

     

    absdiff(Mat src1, Mat src2, Mat dst)

    이 함수는 두 이미지의 절대 차이를 계산해서 dst에 저장하는 거다. abs가 절대값이라는 뜻이다.

    saturate(|src1(I) - src2(I)|) 이다.

    saturate는 픽셀값을 0에서 255 사이로 제한해주는 거다.

    만약 픽셀 값이 255보다 크면 그냥 255

    0보다 작으면 0으로 만들어준다.

     

    subtract(Mat src1, Mat src2, Mat dst, Mat mask=noArray(), int dtype=-1)

    이 함수는 src1에서 src2를 빼서 dst에 저장한다. 마스크가 있으면 특정 부분만 연산할 수 있다.

    saturate(src1(I) - src2(I)) (마스크가 있으면 그 부분만 계산)

    이미지에서 특정 효과를 제거하거나, 이미지 간의 차이를 뺄 때 유용하게 쓸 수 있다.

     

     

    '컴공지식 > 컴퓨터비전' 카테고리의 다른 글

    Color Models  (0) 2024.09.19
    기본 색  (0) 2024.09.19
    VideoWriter  (0) 2024.09.09
    OpenCV로 도형 그리기  (0) 2024.09.09
    히스토그램이란?  (0) 2024.09.08
Designed by Tistory.