이미지 프로세싱/OPENCV

[2.4.10] Mat.at 함수를 통해서 픽셀 접근시 오류날 때

Makeii 2017. 1. 16. 15:46
1
2
3
4
5
6
7
8
9
10
for(int i=0;i<sketch.cols;i++){
        for(int j=0;j<sketch.rows;j++){
            if(blur.at<uchar>(j, i) == 255){
                result.at<uchar>(j, i) = sketch.at<uchar>(j, i);
            }
            else{
                result.at<uchar>(j, i) = min(255, (sketch.at<uchar>(j, i)<<8)/(255-blur.at<uchar>(j, i)));
            }
        }
    }
cs


위 코드처럼 color dodge 함수를 만들고 테스트해봤더니 계속 abort() has been called 오류가 났다.

처음에는 여러개의 Mat들이 얕은 복사로 연결되어 있어서 오류나는 줄 알았는데 아니었다.


결과물을 저장할 result가 초기화되지 않아 지정 위치의 픽셀에 접근할 수가 없었던 것

result를 초기화 시켜주고 픽셀에 접근하니 잘 됐다.