2.2 Pixel Access

Eden.Yang·2023년 12월 6일
0

Computer VIsion

목록 보기
7/22

Pixel Access (픽셀 접근)

픽셀 접근은 이미지나 행렬에서 특정 위치의 픽셀 값을 읽거나 수정하는 작업을 말합니다. OpenCV에서는 Mat 클래스를 사용하여 이미지나 행렬을 나타내며, 다양한 방법으로 픽셀에 접근할 수 있습니다.

1. at 함수를 이용한 픽셀 접근:

Mat 클래스의 at 함수를 사용하여 좌표를 지정하여 해당 픽셀의 값을 읽거나 수정할 수 있습니다.

Mat image = imread("example.jpg");

// 좌표 (x, y)의 픽셀 값을 읽어옴
Vec3b pixel = image.at<Vec3b>(y, x);

// 픽셀 값을 수정
pixel[0] = 255;
pixel[1] = 0;
pixel[2] = 0;

// 수정된 픽셀을 다시 이미지에 설정
image.at<Vec3b>(y, x) = pixel;

위의 코드에서 Vec3b는 3채널(BGR) 컬러 이미지에서 각 채널의 값을 나타내는 자료형입니다. at<Vec3b>은 해당 좌표의 픽셀 값을 Vec3b 형식으로 읽거나 수정합니다.

2. ptr 함수를 이용한 픽셀 접근:

ptr 함수를 사용하면 한 행(row)의 시작 주소를 얻을 수 있고, 이를 이용하여 픽셀에 접근할 수 있습니다.

Mat image = imread("example.jpg");

for (int y = 0; y < image.rows; ++y) {
    // 행의 시작 주소를 얻음
    Vec3b* row_ptr = image.ptr<Vec3b>(y);

    for (int x = 0; x < image.cols; ++x) {
        // 해당 픽셀에 접근
        Vec3b& pixel = row_ptr[x];

        // 픽셀 값을 수정
        pixel[0] = 255;
        pixel[1] = 0;
        pixel[2] = 0;
    }
}

이러한 방법은 행 단위로 접근하여 작업할 때 유용하며, 픽셀의 연산이나 변경이 필요한 경우에 사용됩니다.

픽셀 접근은 이미지 처리에서 중요한 부분이며, 특히 OpenCV에서 다양한 연산 및 처리를 수행할 때 필수적인 작업입니다.

profile
손끝에서 땅끝으로, 골방에서 열방으로

0개의 댓글